第三章栈和队列2009.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章栈和队列2009

第三章 栈和队列 两种特殊的线性表 栈和队列 3.1 栈 3.2 栈的应用举例 3.3 栈与递归 3.4 队列 3.1 栈 栈是仅限定在表的一端操作的线性表。它的插入和删除都只能在表的一端进行。 3.1.1 栈的类型定义 栈的表示和实现 顺序存储 链表存储 栈的顺序存储 typedef struct { char ST[101] int top; } stack; stack S; 栈的顺序存储 # define Maxsize 100+1 typedef struct { elemtype ST[Maxsize] int top; } stack; stack S; 栈的顺序存储 1.栈空的条件: S.top == 0 2. 栈的压入操作 Push(S, e) //栈 S 已存在,压入元素 e { if (s.top== Maxsize -1) printf(栈满溢出); else { S.top++; S.ST[top]=e; } return OK; } 2. 栈的压入操作 Push(S, e) //栈 S 已存在,压入元素 e { if (s.top== Maxsize -1) printf(栈满溢出); else { S.top++; S.ST[top]=e; } return OK; } 3. 栈的弹出操作 pop (S, e) //栈 S 已存在,压入元素 e { if (s.top== 0) printf(栈空下溢); else { e =S.ST[s.top]; S.top - -; } return OK; } 栈的链式存储 3.2 栈的应用举例 ClearStack(S) 重置S为空栈 empty (s) 判断栈空 push(s,ch) 将一个元素e推入栈s pop(s) 将栈顶元素弹出,且返回其元素 gettop(s,e) 取栈顶元素 例1 行编辑程序问题 假设“#”为退格符,表示前一个字 符无效; “@”为退行符,表示当前行无效; 设立一个栈(输入缓冲区),用以接受用户输入的一行字符,然后逐行存入用户数据区。 算符间的优先级关系 算符间的优先级关系 算符间的优先级关系 算符间的优先级关系 3.3 栈与递归的实现 求n! Hanoi塔问题 例1 求n! (用递归调用) 1 n=0 fac= n (n-1)! n0 求n! (用递归调用) 1 n=0 fac= n (n-1)! n0 求n! (用递归调用) 1 n=0,1 fac= n (n-1)! n0 递归的要点: 例2 Hanoi 塔问题 例2 Hanoi 塔问题 例2 Hanoi 塔问题 例2 Hanoi 塔问题 3.4 队列 3.4.1 抽象数据类型队列的定义 队列:是一种先进先出的线性表,它的操作只能在表的两端进行。 队列的表示 链式表示——链队列 顺序表示——循环队列 3.4.2 链队的表示和实现 链队——用链表表示的存储结构的队列 3.4.3 队列的顺序存储结构 顺序队列——数组表示 队列的顺序存储结构称为顺序队列。 1. 顺序队列——数组表示 初始化建空队列时令 1. 顺序队列——数组表示 入队时: 加入结点; rear+1; 1. 顺序队列——数组表示 入队:加入结点; 头指针rear+1; 1. 顺序队列——数组表示 出队: 删除结点; 队头指针front+1; 2.顺序队列的基本运算 3. 循环队列 if ( rear+1=MAX-1) 队满溢出 在顺序队列中,当队尾指针已经指向了队列的最后一个位置时,此时若有元素入列,就会发生“溢出”。在图中,虽然队尾指针已经指向最后一个位置,但事实上队列中还有空位置。也就是说,队列的存储空间并没有满,但队列却发生了溢出,我们称这种现象为假溢出。 解决的方法:将队列看成是循环表 : 但 当队满时rear==front : 但 当队满时rear==front 当队空时rear==f

文档评论(0)

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

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

1亿VIP精品文档

相关文档