03栈和队列1技巧.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第三章 栈和队列 3.1 栈 3.2 栈的应用举例 3.4 队列 3.3 栈与递归的实现 * 3.1 栈 乒乓球桶 弹夹 * 3.1 栈 3.1.1 栈的类型定义 3.1.2 栈的表示和实现 * 3.1.1 栈的类型定义 an a1 a2 …... 栈底(bottom) 栈顶(top) ... 出栈(Pop) 进栈(Push) 栈s=(a1,a2,……,an) 特点:后进先出(LIFO) 表尾—栈顶 表头—栈底 栈的定义:限定仅在表尾进行插入或删除操作的线性表。不含元素的空表称空栈。 * 3.1.1 栈的类型定义 栈顶(Top):允许进行插入、删除操作的一端,又称为表尾。用栈顶指针(top)来指示栈顶元素。 top bottom 栈底(Bottom):是固定端,又称为表头。 空栈:当表中没有元素时称为空栈。 * 3.1.1 栈的类型定义 栈的特性: 栈属于加了限制条件的线性结构; 栈是后进先出的线性表; 进栈和出栈只能从栈的一个端点进行; 栈中的元素个数可以是0,此时是空栈; 栈的元素的个数是可以变化的,可以是多个,但不能是无穷多个; 每个栈中的元素的类型相同. * 3.1.1 栈的类型定义 ADT Stack { 数据对象: D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } 数据关系: R1={ ai-1, ai | ai-1, ai∈D, i=2,...,n } 约定an 端为栈顶,a1 端为栈底。 基本操作: * 3.1.1 栈的类型定义 (1) InitStack(S) //构造空栈 (2) DestroyStack(S) //销毁栈 (3) ClearStack (S) //清空栈 (4) StackEmpty(S) //判空. 空--TRUE, (5) StackLength(S) //求栈的长度 (6) GetTop(S, e) //取栈顶元素, (7) Push(S, e) //入栈 (8) Pop(S, e) //出栈 (9) StackTraverse(S,visit()) //遍历 }ADT Stack * 3.1.1 栈的类型定义 a1 a2 an e … … Push(S, e) 初始条件:栈 S 已存在。 操作结果:插入元素 e 为新的栈顶元素。 * 3.1.1 栈的类型定义 Pop(S, e) 初始条件:栈 S 已存在且非空。 操作结果:删除 S 的栈顶元素,并用 e 返回其值。 a1 a2 an an-1 … … * 3.1.2 栈的表示和实现 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。 栈的顺序存储结构 * 3.1.2 栈的表示和实现 栈的顺序存储结构 #define STACK_INIT_SIZE 100; #define STACKINCREMENT 10; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack;  其中stacksize表示栈当前可以使用的最大容量。Base为栈底,Top为栈顶。栈顶指针指向栈顶元素的下一个位置(即下次压栈时元素所放的位置) * 3.1.2 栈的表示和实现 top指向压栈时下一个元素将要存放的位置。 top减一指向弹栈时下一个元素的取值位置。 栈空的条件:top=base 栈满的条件:top-base = stacksize top top base 空栈 base 非空非满栈 top A B C A B C base 满栈 D E 栈的顺序 存储结构 * 3.1.2 栈的表示和实现 top=0 1 2 3 4 5 0 栈空 栈顶指针top,指向实际栈顶后的空位置,初值为0 top 1 2 3 4 5 0 进栈 A top 出栈 栈满 B C D E F 设栈的容量为M top=0,栈空,此时出栈,则下溢(underflow) top=M,栈满,此时入栈,则上溢(overflow) top

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档