7 软件技术基础-栈和队列.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈和队列 栈和队列是常用的数据结构它和线性表的区别在于: 逻辑结构和存储结构与线性表相同。 操作集合是线性表的操作集合的子集,即是操作受限。 栈(stack) 定义:栈是特殊的线性表,仅在表的一端进行插入或删除操作 栈底 栈顶 push pop 设栈 S=( a1, a2, a3  ai,  an),则a1为栈底元素, an为栈顶元素,栈的修改只能在栈顶进行,是按后进先出的原则进行的,因此栈又称为后进先出的线性表(Last In First Out,LIFO)。 栈的基本运算有五种: SETNULL(S):初始化栈。 EMPTY(S);判断是否为空栈。 PUSH(S,x ):进栈操作,即在栈顶插入元素x。 POP(S):出栈操作,即删除栈顶元素。 TOP(S):访问栈顶元素an 。 栈:采用顺序存储结构-顺序栈 采用链式存储结构-链栈 栈(stack) 1. 顺序栈:利用一组地址连续的存储单元依次存放从栈底到栈顶的元素。 顺序栈的C语言描述: typedef struct { elemtype data[Maxnum]; int top; } stacktype; top=0 A top=-1 栈空 top=0 插入A元素 top=4 栈满 top=4 E D C B A top=2 C B A 注意:Maxnum表示顺序栈的最大长度, top 和顺序表中num的含义不一致: num为表中实际元素的个数; top 为栈中栈顶元素的数组下标值。 top=-1,为空栈;此时若进行出栈操作,发生下溢(underflow) top=m-1,表示栈满;此时若进行进栈操作,发生上溢(overflow) 假定定义一个数组data[5] 来表示一个顺序栈。 4 3 2 1 0 算法一、初始化栈 使栈顶指针为一个无效值。C 语言中将此值定义为-1。 算法二、进栈操作PUSH 设栈 S=( a1, a2, a3  ai,  an), PUSH(S,x)的含义是:通过操作使栈 S=( a1, a2, a3  ai,  an,x),但是插入之前要检测是否栈满。 步骤: 1. 若栈满的话,返回 “ false ”,程序结束。 2. 栈顶指示器的值加1。(top + +) 3. 将 x 放入栈顶指示器指示的存储单元。 4. 返回“true”,程序结束。 void initiatest(stacktype *s) { s-top=-1; } #define true 1 #define false 0 int pushs(stacktype *s, elemtype x) { if(s-top=MAXNUM-1) /* 栈是否满?*/ return(false); else {s-top++; /* 栈顶位置修改*/ s-stack[s-top]=x; /* 新栈顶插入元素*/ return(true); } } 算法二、进栈操作PUSH 步骤: 1.若栈空的话,返回“NIL”,程序结束。 2.栈顶指示器的值减1。(top- -) 3.返回删除的栈顶元素。 elemtype pops(stacktype *s) { if(s-top0) /* 栈是否空?*/ return(NIL); else {s-top--; /* 栈顶位置修改*/ return( s-stack[s-top+1]); /* 返回删除的元素*/ } } 算法三、出栈操作

文档评论(0)

sunyi8246 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档