DSB第3章-邹.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文档。上传文档
查看更多
DSB第3章-邹

(1) 判空 template class T bool SeqQueueT::IsEmpty() const { return front==rear; } 4. 在顺序存储表示下实现队列定义的操作 (2) 判满 template class T bool SeqQueueT::IsFull() const { return (rear+1) % maxSize==front; } (3) 取队列元素 template class T bool SeqQueueT::Front(T x) { if(IsEmpty()) { coutemptyendl; return false; } x=q[(front+1) % maxSize]; return true; } 0 f 1 2 3 4 20 30 40 50 r (4) 进队列(插入) template class T bool SeqQueueT::EnQueue(T x) { if(IsFull()) { coutFullendl; return false; } q[(rear=(rear+1) % maxSize)]=x; return true; } 0 f 1 2 3 4 20 30 40 50 r 元素50入队列 0 f 1 2 3 4 20 30 40 r (4) 出队列(删除) template class T bool SeqQueueT::DeQueue() { if(IsEmpty()) { coutUnderflowendl; return false; } front=(front+1) % maxSize; return true; } 0 f 1 2 3 4 元素20,30,40出队列 50 r 0 f 1 2 3 4 20 30 40 50 r 3.2.3 队列的链接表示 队列的链接表示法(链式队列) 链式队列的定义和操作的 实现类似于单链表,留作作 业,请实现之。 不带表头结点的单链表 课堂提要 第3章 堆栈和队列 3.1 堆栈 3.2 队列 3.2.1队列抽象数据类型 3.2.2队列的顺序表示 3.2.3队列的链接表示 3.3 表达式的计算 a0 an-1 … front ∧ 图3-3 链式队列  a1 a2 rear a0 an-1 … front ∧ 图3-3 链式队列  a1 a2 rear 入队列EnQueue(T x) NodeT *q = new NodeT; q-element = x; q-link = NULL; rear-link = q; 出队列DeQueue() NodeT *q = new NodeT; q-element = x; q-link = NULL; rear-link = q; 3.3 堆栈的应用—表达式计算 3.3.1 表达式 表达式:由操作数、操作符和界限符组成。 中缀表达式:操作符在两个操作数之间的表达式 如:a/(b-c)+d*e 前缀表达式:操作符放在两个操作 数之前的表达式。 如:+/a-bc*de 后缀表达式:操作符放在两个操作 数之后的表达式(逆波兰表达式)。 如:abc-/de*+ 课堂提要 第3章 堆栈和队列 3.1 堆栈 3.2 队列 3.2.1队列抽象数据类型 3.2.2队列的顺序表示 3.2.3队列的链接表示 3.3 表达式的计算 表达式的优先级 表3-1 操作符的优先级 操作符 优先级 -,! 7 *,/,% 6 +,- 5 ,=,,= 4 ==,!= 3 2 || 1 3.3.2 后缀表达式求值 比较中缀表达式及其对应的后缀表达式的例子: a*b+c a*b/c a*b*c*d*e*f a+(b*c+d)/e a*((b+c)/(d-e)-f) a/(b-c)+d*e ab*c+ ab*c/ ab*c*d*e*f* abc*d+e/+ abc+de-/f-* abc-/de*+ 表3.2 中缀表达式和后缀表达式 中缀表达式 后缀表达式 后缀表达式求值优点: 1)无界限符; 2)求值时无需考虑操作符的优先级。 因此用后缀表达式求值计算简便,在编译程序中常用。

文档评论(0)

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

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

1亿VIP精品文档

相关文档