数据结构课件3栈和队列幻灯片.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1、数制转换 十进制数转换成B进制数 N = bjBj + bj-1Bj-1+…+b1B1+b0B0 = (bjBj-1 + bj-1Bj-2+…+b1)B +b0 即若将上式整除B,则余数恰为b0,整除B后的商正是上式括号内的和式。从而得到以下转换算法: 求N整除B的余数求出b0 ,并令N为整除B 后的商。 对新的N施同样的运算,直至N为0,就能依次求出b1、… 、bj-1、bj。 若将计算中所得结果逐一进栈,计算结束后从栈出逐一退出,就得结果。 * typedef int DataType; void multiBaseOutput(int N, int B) { SeqStack S; initStack(S); while(N) { push(S, N%B); N = N/B; } while(!stackEmpty(S)) printf(“%4d”, pop(S)); printf(“\n”); } 1、数制转换 * θ2 θ1 + - * / ( ) # + - * / ( = ) # = 前运算符 ? 后运算符 2、表达式计算(算符间优先关系) 2 * ( 3 + ) 5 - 4 # # * # 2 * ( 3 + 5 8 16 - 4 12 2 * ( 3 + ) 5 - 4 # # 操作数栈 data 操作符栈 oper 2、表达式计算 * 递归是描述算法的有力工具。 递归的概念 递归的定义 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的;若一个过程直接地或间接地调用自己, 则称这个过程是递归的过程。 在以下三种情况下,常常用到递归方法。 定义是递归的 数据结构是递归的 问题的解法是递归的 3、栈与递归 * 定义是递归的 例如,阶乘函数 求解阶乘函数的递归算法 long Factorial ( long n ) { if ( n == 0 ) return 1; else return n*Factorial (n-1); } * 求解阶乘 n! 的过程 * 数据结构是递归的 搜索链表最后一个结点并打印其数值 void Find ( ListNode*f ) { if ( f →link == NULL ) printf(“%d “, f →data); else Find ( f →link ); } 如单链 表结构 * 问题的解法是递归的 例如,汉诺塔(Tower of Hanoi)问题 * void Hanoi (int n,char A,char B,char C) { //解决汉诺塔问题的算法 if ( n == 1 ) printf(“ move %c to %c\n”, A, C); else { Hanoi ( n-1, A, C, B ); printf(“ move %c to %c\n”, A, C); Hanoi ( n-1, B, A, C ); } } * 男女分别排成两队,依次从男队和女队头上各出 一人配成舞伴。程序输出配对情况,及一队多余 的人数。采用队列数据结构。 typedef struct { char name[20]; char sex; }Person; typedef Person DataType; 4、舞伴问题 * void dancePartners(Person dancer[], int num) { int i; Person P; CirQueue Mdancers, Fdancers; initQueue(Mdancers); initQueue(Fdancers); for(i = 0; i num; i++) { P = dancer[i]; if(P.sex == ‘F’) enQueue(Fdancers, P); else enQueue(Mdancers, P); } printf(“配对情况如下:\n”); * while(!queueEmpty(Fdancers) !queueEmpty(Mdance

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档