《数据结构与算法》第3章 栈和队列

第3章栈和队列 3.1栈 32栈的应用举例 33栈与递归的实现 34队列 第3章 2021/2/25
第3章 2021/2/25 1 第3章 栈和队列 3.1 栈 3.2 栈的应用举例 3.3 栈与递归的实现 3.4 队列

31栈( Stack 1定y:限定只在表的一端(表尾进行 插入和删除操作的线性表 特点:后进先出(L∥FO)(弹出 进栈 (压入) 允许插入和删除 的一端称为栈顶 op -1 ←表尾 (top),另一端称 为栈底( bottom) a1 bottom→ Co ←表头 2021/2/25 第3章
2021/2/25 第3章 2 3.1 栈 ( Stack ) 1.定义:限定只在表的一端(表尾)进行 插入和删除操作的线性表 特点:后进先出(LIFO) 允许插入和删除 的一端称为栈顶 (top),另一端称 为栈底(bottom) 表尾 表头

2.栈的表示和实现 1)顺序栈—栈的顺序存储结构 2)链栈——栈的链式存储结构 3)静态分配整型指针 3 第3章 2021/2/25
第3章 2021/2/25 3 2. 栈的表示和实现 1)顺序栈——栈的顺序存储结构 2)链栈——栈的链式存储结构 3)静态分配整型指针

1)顺序栈—栈的顺序存储结构 限定在表尾进行插入和删除操作的顺序表 类型定义:p46 typedef struct i SElem Type * base SElem lype top int stacksize SqStack Sqstack S; (顺序栈有三个域:栈顶和栈底指针,栈的最大容量) 第3章 2021/2/25
第3章 2021/2/25 4 1)顺序栈——栈的顺序存储结构 限定在表尾进行插入和删除操作的顺序表 类型定义: p46 typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; SqStack s; (顺序栈有三个域:栈顶和栈底指针,栈的最大容量)

说明: base称为栈底指针,始终指向栈底; 当base=NULL时,表明栈结构不存在 op为栈顶指针 a.top的初始值指向栈底,即top=base b.空栈:当top-base时为栈空的标记 C.当栈非空时,top的位置:指向当前栈 顶元素的下一个位置 stacksize—当前栈可使用的最大容量 5 第3章 2021/2/25
第3章 2021/2/25 5 说明: ▪ base称为栈底指针,始终指向栈底; 当base = NULL时,表明栈结构不存在。 ▪ top为栈顶指针 a. top的初始值指向栈底,即top=base b. 空栈:当top=base时为栈空的标记 c. 当栈非空时,top的位置:指向当前栈 顶元素的下一个位置 ▪ stacksize ——当前栈可使用的最大容量

进栈示例 tacksize e edc top C ba base base→ ase- 空栈 a进栈 b进栈 进栈进栈溢出 6 第3章 2021/2/25
第3章 2021/2/25 6 进栈示例 base base base base base stacksize

退栈示例 e top-e d|top→d [a tse → k退栈 e退栈 d退栈 a退栈 空栈 第3章 2021/2/25
第3章 2021/2/25 7 退栈示例 base base base base base

几点说明: 栈空条件:s.top=s.base此时不能出栈 栈满条件:s.top-s.base>=s. stacksize 进栈操作:*stop++=e;或*stop=e;stop++; 退栈操作:c=*-stop;或stop-;c=*stop; 当栈满时再做进栈运算必定产生空间溢出, 简称“上溢”; 当栈空时再做退栈运算也将产生溢出,简 称“下溢 8 第3章 2021/2/25
第3章 2021/2/25 8 几点说明: ⚫ 栈空条件:s. top =s. base 此时不能出栈 ⚫ 栈满条件:s.top-s.base>=s.stacksize ⚫ 进栈操作:*s.top++=e; 或*s.top=e; s.top++; ⚫ 退栈操作:e=*--s.top; 或s.top--; e=*s.top; ⚫ 当栈满时再做进栈运算必定产生空间溢出, 简称“上溢”; ⚫ 当栈空时再做退栈运算也将产生溢出,简 称“下溢

基本操作的实现 栈的初始化操作p47 Status InitStack(SqStack &S) 取栈顶元素p4 Status GetTop(Sqstack s, sElem Type &e) 进栈操作p47 Status Push(sqStack &s, selem Type e) 退栈操作p47 Status Pop(sqstack &s, selem Type &e) 第3章 2021/2/25
第3章 2021/2/25 9 基本操作的实现 ⚫ 栈的初始化操作 p47 Status InitStack(SqStack &S) ⚫ 取栈顶元素 p47 Status GetTop(SqStack S, SElemType &e) ⚫ 进栈操作 p47 Status Push(SqStack &S, SElemType e) ⚫ 退栈操作 p47 Status Pop(SqStack &S, SElemType &e)

栈的初始化操作p47 Status InitStack(SqStack &s)i S base=(sElem Type )malloc(STACK INIT size x sizeof(elem Type)); if(S base)return(OVERFLOW) S top S base S. stacksize= STACK INIT SIZE return OK 第3章 2021/2/25
第3章 2021/2/25 10 栈的初始化操作 p47 Status InitStack (SqStack &S) { S.base = (SElemType )malloc(STACK_INIT_SIZE * sizeof(ElemType)); if (!S.base) return (OVERFLOW); S.top=S.base; S.stacksize = STACK_INIT_SIZE; return OK; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《数据结构与算法》第2章 线性表.ppt
- 《数据结构与算法》第1章 绪论.ppt
- 《数据结构与算法》程序设计中的思维方式.ppt
- 《数据库基础教程》(实验指导)PDF电子书.pdf
- 《C语言程序设计》课程教学资源(PPT教学课件,共七章).ppt
- 《Delphi步步精通》PPT完整课件 第9章 图像图形应用编程.ppt
- 《Delphi步步精通》PPT完整课件 第8章 多媒体应用编程.ppt
- 《Delphi步步精通》PPT完整课件 第7章 常用组件.ppt
- 《Delphi步步精通》PPT完整课件 第6章 自定义类型.ppt
- 《Delphi步步精通》PPT完整课件 第5章 过程与函数.ppt
- 《Delphi步步精通》PPT完整课件 第4章 数组.ppt
- 《Delphi步步精通》PPT完整课件 第3章 三种结构的程序设计.ppt
- 《Delphi步步精通》PPT完整课件 第2章 Object Pascal语言基础.ppt
- 《Delphi步步精通》PPT完整课件 第1章 Delphi概述.ppt
- 《Delphi步步精通》PPT完整课件 第12章 SQL数据库程序设计.ppt
- 《Delphi步步精通》PPT完整课件 第11章 数据库应用基础.ppt
- 《Delphi步步精通》PPT完整课件 第10章 DLL的应用.ppt
- 《程序设计教程》教学资源(学习资料)PlainText.rtf
- 《程序设计教程》教学资源(PPT讲稿)第9章 文件管理与配置注册表.ppt
- 《程序设计教程》教学资源(PPT讲稿)第8章 多媒体编程.ppt
- 《数据结构与算法》第4章 串.ppt
- 《数据结构与算法》第5章 数组和广义表.ppt
- 《数据结构与算法》第6章 树和二叉树.ppt
- 《数据结构与算法》第7章 图.ppt
- 《数据结构与算法》第8章 查找.ppt
- 《数据结构与算法》第9章 内部排序.ppt
- 《数据结构与算法》数据结构补充.doc
- 清华大学:《面向对象的理论与C++实践》PDF电子书(共十四章)(王燕).pdf
- 《C语言精彩编程百例》PDF电子书(共四篇).pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第1章 电筒密谈.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第2章 编码与组合.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第3章 布莱叶盲文与二元编码.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第4章 手电筒剖析.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第5章 绕过拐弯的通信.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第6章 发报机与断电器.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第7章 十进制记数法.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第8章 其他进位制记数法.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第9章 二进制数.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第10章 逻辑与开关.pdf
- 《计算机原理》课程教学资源:机械工业出版社《编码的奥秘》参考书籍(PDF电子书)第11章 逻辑门电路.pdf