数据结构 第3章 栈和队列_第1页
数据结构 第3章 栈和队列_第2页
数据结构 第3章 栈和队列_第3页
数据结构 第3章 栈和队列_第4页
数据结构 第3章 栈和队列_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、22.3.322.3.322.3.322.3.322.3.322.3.3ADT Stack 数据对象数据对象: D = ai | aiElemSet, i=1,2,n, n0 数据关系数据关系:R1 = | ai-1, aiD, i=2,3,n 约定约定an端为栈顶端为栈顶 , a1端为栈底。端为栈底。基本操作:基本操作:ADT Stack22.3.322.3.3基本操作:InitStack( &S )DestroyStack(&S)StackEmpty(S)StackLength(S)GetTop(S,&e)ClearStack(&S)Push(&S,

2、e)Pop(&S,&e)StackTraverse(S,visit()22.3.322.3.3uInitStack( &S )操作结果:构造一个空栈。操作结果:构造一个空栈。uDestroyStack(&S)初时条件:栈初时条件:栈S已存在已存在操作结果:栈操作结果:栈S被销毁被销毁uStackEmpty(S)初时条件:栈初时条件:栈S已存在已存在操作结果:若栈操作结果:若栈S为空栈,则返回为空栈,则返回TRUE,否否则则FALSE。22.3.322.3.3uStackLength(S)初时条件:栈初时条件:栈S已存在已存在操作结果:返回操作结果:返回S的元素个

3、数,即栈的长度。的元素个数,即栈的长度。uGetTop(S,&e)初时条件:栈初时条件:栈S已存在且非空。已存在且非空。操作结果:用操作结果:用e返回返回S的栈顶元素。的栈顶元素。uClearStack(&S)初时条件:栈初时条件:栈S已存在已存在操作结果:将操作结果:将S清空为空栈清空为空栈22.3.322.3.3uPush(&S,e)初时条件:栈初时条件:栈S已存在已存在操作结果:插入元素操作结果:插入元素e为新的栈顶元素。为新的栈顶元素。uPop(&S,&e)初时条件:栈初时条件:栈S已存在且非空。已存在且非空。操作结果:删除操作结果:删除S的栈顶

4、元素,并用的栈顶元素,并用e返回返回其值。其值。uStackTraverse(S,visit()初时条件:栈初时条件:栈S已存在且非空已存在且非空操作结果:从栈底到栈顶依次对操作结果:从栈底到栈顶依次对S的每个数的每个数据元素调用函数据元素调用函数visit()。一旦。一旦visit()失败,失败,则操作失败。则操作失败。22.3.322.3.322.3.322.3.322.3.322.3.3空栈空栈basebasetoptop元素元素a进栈进栈basebasetoptopa元素元素b,c进栈进栈basebasetoptopabc元素c退栈basebasetoptopabbasebasetop

5、topabdef元素d,e,f进栈22.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.3 ( div为整除运算为整除运算, ,mod为求余运算为求余运算 )22.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.

6、3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.322.3.3a1 , a2 , , an出队出队入队入队队尾队尾队首队首22.3.322.3.3数据对象数据对象: D = ai | aiElemSet, i=1,2,n, n0 数据关系数据关系:R1 = | ai-1, aiD, i=2,3,n 约定其中约定其中a1 端为对列头端为对列头 , an端为队列尾。端为队列尾。基本操作:基本操

7、作:22.3.322.3.3基本操作:InitQueue( &Q )DestroyQueue (&Q )QueueEmpty(Q )QueueLength(Q )GetHead(Q , &e)ClearQueue (&Q )EnQueue (&Q,e)DeQueue (&Q,&e)Queue(Q,visit()22.3.322.3.3GetHead(Q , &e)初时条件:初时条件:Q为非空队列。为非空队列。操作结果:用操作结果:用e返回返回Q的队头元素的队头元素DeQueue (&Q,&e)初时条件:初时条件:Q为非空队列。为非空队列。操作结果:删除操作结果:删除Q的队头元素,并用的队头元素,并用e返回返回其值。其值。EnQueue (&Q,e)初时条件:队列初时条件:队列Q已存在已存在。操作结果:插入元素操作结果:插入元素e为为Q的新的队尾元素。的新的队尾元素。22.3.322.3.322.3.322.3.322.3.322.3.3(a) 空队列空队列front rear(b) x入队入队 x front rear(c) y再入队再入队 y front rear x(d) x出队出队 y xfront rear22.3.322

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论