网站大量收购独家精品文档,联系QQ:2885784924

数据结构第三章C资料.ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
堆栈操作 两栈共享 中缀表达式→后缀表达式 后缀表达式的处理过程 例4 函数的递归调用 定义: 在调用一个函数的过程中直接或间接地调用该函数本身。 直接调用 int f(x) int x; { int y,z; ….. z=f(x); …… return (2*z); } 间接调用 int f1(x) int x; { int y,z; ….. z=f2(y); …… return (2*z); } int f2(t) int t; { int a,c; ….. c=f1(a); …… return (3+c); } 假定某主程序调用haoni子程序Haoni (3,‘A’,‘B’,‘C’);这个语句向Haoni函数提供“实参”n=3以及3个柱子的名字。 递归子程序的执行顺序为: Haoni(3,‘A’,‘B’,‘C’)首先调用Haoni(2,‘A’, ‘C’ , ‘ B’ )。 进入Haoni(2,‘A’, ‘C’ , ‘ B’ )后调用Haoni(1,‘A’,‘B’,‘C’)、move ( ‘A’,‘B’)和 Haoni(1 ,‘C’ ,‘A’,‘B’ )。当以上语句执行的时候,栈进入三层。它们执行完毕后,依次返回,栈弹出到第一层。 返回到第一层的Haoni(3,‘A’,‘B’,‘C’)程序,执行语句move ( ‘A’,‘C’)。接着调用Haoni(2,‘B’ ,‘A’, ‘C’ )。 进入Haoni(2,‘B’ ,‘A’, ‘C’ )后调用Haoni(1,‘B’ ,‘C’ ,‘A’ )、 move ( ‘B’,‘C’)和Haoni(1,‘A’,‘B’,‘C’) 。 当执行以上语句时,栈进入三层。而当它们执行完毕后,依次返回,栈弹出到第一层。最后完成n=3的Haoni任务。 注意,当n=10时,完成任务需要移动圆盘约1000次,当n=30时,完成任务则需要移动圆盘超过1000万次。 完成Haoni任务所需要的时间是随着n的增长而指数性增长的,因此,这个算法的时间复杂性是指数爆炸的。 顺序队列 迷宫行走的8个方向   利用模运算可简化为: sq-rear =(sq-rear +1)%maxSize 同理出队操作时,头指针加1操作利用模运算可描述为:   sq-front =(sq- front +1)%maxSize   显然,因为循环队列元素的空间可以被利用,除非向量空间真的被队列元素全部占用,否则不会上溢。因此,除一些简单的应用外,真正实用的顺序队列是循环队列。 如图所示:由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时头尾指针均相等。因此,我们无法通过front=rear来判断队列“空”还是“满”。 解决此问题的方法至少有两种: 其一是另设一个布尔变量以判别队列的空和满;其二是约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等则认为队满(注意:front所指的单元始终为空)。 循环队列 rear front 0 1 2 3 (3) 队空 队满条件: (Q.rear+1)%MAX=Q.front 注:实际上为了避免与队空标志冲突,还留有一个空间。 将头尾连接成一个环,形成循环队列。 rear (1)一般情况 front 0 1 2 3 e4 e3 (2) 队满 front e3 e4 0 1 2 3 rear e5 A*B + C/D; top2 top1 初态 # (a) OS NS B A * # (b) NS OS T1 # (c) T1=A*B NS OS D C T1 / + # (d) NS OS (g) NS OS T2=C/D T2 T1 + # (e) NS OS T3 # (f) T3=T2+T1 NS OS 如: x = 3 × (7-2) 执行过程:# 3 × (7-2) # NS栈 OS栈 # NS栈 OS栈 # 3 NS栈 OS栈 # × 3 NS栈 OS栈 # 3 × ( NS栈 OS栈 # 7 3 × ( NS栈 OS栈 # ( × 3

文档评论(0)

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

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

1亿VIP精品文档

相关文档