[其它课程]数据结构ch31.ppt

上传人:sccc 文档编号:4886325 上传时间:2023-05-21 格式:PPT 页数:109 大小:627.50KB
返回 下载 相关 举报
[其它课程]数据结构ch31.ppt_第1页
第1页 / 共109页
[其它课程]数据结构ch31.ppt_第2页
第2页 / 共109页
[其它课程]数据结构ch31.ppt_第3页
第3页 / 共109页
[其它课程]数据结构ch31.ppt_第4页
第4页 / 共109页
[其它课程]数据结构ch31.ppt_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《[其它课程]数据结构ch31.ppt》由会员分享,可在线阅读,更多相关《[其它课程]数据结构ch31.ppt(109页珍藏版)》请在三一办公上搜索。

1、1,例5:表达式求值,4+2 3-10/5,4,+,6,-,2,=,8,=,算术四则运算规则,(1)先乘除,后加减,(2)从左算到右,(3)先括号内,后括号外,4+2 3-10/5,4,+,6,-,10/5,=,10,=,-,10/5,=,10,-,2,=,8,10,-,2,=,2,表达式,3,1 2:,1=2:,1 2:,1的优先级低于 2,1的优先级等于 2,1的优先级高于 2,=,x,=,x,x,4,工作栈 OPTR-运算符 OPND-操作数或运算结果,算符优先算法,5,OperandType EvaluateExpression()/算术表达式求值的算符优先算法.InitStack(O

2、PTR);Push(OPTR,#);InitStack(OPND);c=getchar();while(c!=#|GetTop(OPTR)!=ch)if(!In(c,OP)Push(OPND,c);c=getchar();/非运算符,则进栈 else switch(Precede(GetTop(OPTR,c)case:/栈顶元素优先权低 Push(OPTR,c);c=getchar();break;case=:/脱括号 Pop(OPTR,x);c=getchar();break;,6,case:/退栈,并将运算结果入栈 Pop(OPTR,theta);Pop(OPND,b);Pop(OPND,

3、a);Push(OPND,Operate(a,theta,b);break;/switch/while return GetTop(OPND);/EvaluateExpression,7,例:利用算法EvaluationExpress 求表达式 3*(7-2)的值,1,PUSH(OPND,3),#,2,#,3,PUSH(OPTR,*),3,#*,3,PUSH(OPTR,(),4,#*(,3,PUSH(OPND,7),5,#*(,3 7,PUSH(OPTR,-),6,#*(-,3 7,PUSH(OPND,2),7,#*(-,3 7 2,Operat(7,-,2),8,#*(,3 5,Pop(OP

4、TR)消括号,9,#*,3 5,#,Operat(3,*,5),10,#,15,#,Return(GetTop(OPND),8,3.3 栈与递归的实现,递归函数:直接或间接调用自己的函数,1.递归定义的数学函数:,阶乘函数:,2阶Fibonaci数列:,9,树,2.具有递归特性的数据结构:,Root,Lchild,Rchild,广义表,A=(a,A),3.可递归求解的问题:,八皇后问题,Hanoi塔问题,10,Hanoi 塔问题,规则:,(1)每次只能移动一个圆盘,(2)圆盘可以插在X,Y和Z中的任一塔座上,(3)任何时刻不可将较大圆盘压在较小圆盘之上,11,void hanoi(int n,

5、char x,char y,char z)/将塔座x上由小到大且自上而下编号为1至n的n个圆盘按规/则搬到塔座z上,y可用作辅助塔座1 2 if(n=1)3 move(x,1,z);/将编号为1的圆盘从x搬到z4 else5 hanoi(n-1,x,z,y);/将x上编号为1至n-1的圆盘移到y,/z作辅助塔 6 move(x,n,z);/将编号为n的圆盘从x移到z7 hanoi(n-1,y,x,z);/将y上编号为1至n-1的圆盘移到z,/x作辅助塔 8 9,12,函数调用过程,调用前,系统完成:,(1)将实参,返回地址等传递给被调用函数,(2)为被调用函数的局部变量分配存储区,(3)将控制

6、转移到被调用函数的入口,调用后,系统完成:,(1)保存被调用函数的计算结果,(2)释放被调用函数的数据区,(3)依照被调用函数保存的返回地址将控制转移到调用函数,13,函数调用过程,栈,14,int first(int s,int t);int second(int d);int main()int m,n;.first(m,n);1:.int first(int s,int t)int i;.second(i);2:.int second(int d)int x,y;.,栈顶,15,递归函数调用的实现,“层次”,“递归工作栈”,“工作记录”,实在参数,局部变量,返回地址,16,Hanoi(3

7、,a,b,c),Hanoi(2,a,c,b),move(a,3,c),Hanoi(2,b,a,c),0,1,17,Hanoi(1,a,b,c),move(a,2,b),Hanoi(1,c,a,b),2,18,3,move(a,1,c),move(c,1,b),19,Hanoi(1,b,c,a),move(b,2,c),Hanoi(1,a,b,c),20,Hanoi(3,a,b,c),Hanoi(2,a,c,b),move(a,3,c),Hanoi(2,b,a,c),Hanoi(1,a,b,c),move(a,2,b),Hanoi(1,c,a,b),Hanoi(1,b,c,a),move(b,2

8、,c),Hanoi(1,a,b,c),0,1,2,3,move(a,1,c),move(c,1,b),move(b,1,a),move(a,1,c),21,move(a,2,b),Hanoi(1,c,a,b),Hanoi(3,a,b,c),Hanoi(2,a,c,b),Hanoi(1,a,b,c),22,move(a,3,c),Hanoi(2,b,a,c),Hanoi(1,b,c,a),move(b,2,c),Hanoi(1,c,a,b),23,void main(void)int n;unsigned char a,b,c;n=3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.

9、,0 层,24,void main(void)int n;unsigned char a,b,c;n=3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.,0 层,25,void main(void)int n;unsigned char a,b,c;n=3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.,0 层,26,void main(void)int n;unsigned char a,b,c;n=3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.,0 层,27,void main(void)int n;unsigned char a,b,c;n=

10、3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.,0 层,0,3,a,b,c,28,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,29,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hano

11、i(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,30,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,31,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,

12、x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,2,a,c,b,32,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,2,a,c,b,6,2,a,c,b,33,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x

13、,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,6,2,a,c,b,34,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,6,2,a,c,b,35,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x

14、,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,6,2,a,c,b,36,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,1,a,b,c,6,2,a,c,b,37,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z)

15、;4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,1,a,b,c,6,2,a,c,b,6,1,a,b,c,38,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,6,2,a,c,b,6,1,a,b,c,39,void hanoi(int n,char

16、x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,6,2,a,c,b,6,1,a,b,c,40,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,a,1,c,6,2,a,c

17、,b,6,1,a,b,c,41,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,6,2,a,c,b,6,1,a,b,c,42,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8

18、 9,2 层,0,3,a,b,c,2,a,c,b,a,2,b,6,2,a,c,b,43,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,1,c,a,b,6,2,a,c,b,44,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move

19、(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,1,c,a,b,6,2,a,c,b,8,1,c,a,b,45,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,c,a,b,6,2,a,c,b,8,1,c,a,b,46,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 m

20、ove(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,c,a,b,6,2,a,c,b,8,1,c,a,b,47,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,c,a,b,c,1,b,6,2,a,c,b,8,1,c,a,b,48,void hanoi(int

21、 n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,c,a,b,6,2,a,c,b,8,1,c,a,b,49,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,6,2,a

22、,c,b,50,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,a,c,b,6,2,a,c,b,51,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3

23、,a,b,c,a,3,c,52,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,2,b,a,c,53,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a

24、,b,c,3,a,b,c,2,b,a,c,8,2,b,a,c,54,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,8,2,b,a,c,55,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,

25、y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,8,2,b,a,c,56,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,8,2,b,a,c,57,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z

26、);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,1,b,c,a,8,2,b,a,c,58,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,1,b,c,a,8,2,b,a,c,6,1,b,c,a,59,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,

27、z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,b,c,a,8,2,b,a,c,6,1,b,c,a,60,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,b,c,a,8,2,b,a,c,6,1,b,c,a,61,void hanoi(int n,char x,char

28、 y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,b,1,a,3 层,0,3,a,b,c,1,b,c,a,8,2,b,a,c,6,1,b,c,a,62,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,b,c,a,8,2,b,a,c,6,1

29、,b,c,a,63,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,2,b,a,c,b,2,c,0,3,a,b,c,8,2,b,a,c,64,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1,a,b,c

30、,2 层,2,b,a,c,0,3,a,b,c,8,2,b,a,c,65,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1,a,b,c,2 层,2,b,a,c,0,3,a,b,c,8,2,b,a,c,8,1,a,b,c,66,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);mo

31、ve(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,8,2,b,a,c,8,1,a,b,c,67,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,8,2,b,a,c,8,1,a,b,c,68,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,

32、1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,a,1,c,3 层,0,3,a,b,c,1,a,b,c,8,2,b,a,c,8,1,a,b,c,69,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,3 层,0,3,a,b,c,1,a,b,c,8,2,b,a,c,8,1,a,b,c,70,void hanoi(int n,cha

33、r x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,8,2,b,a,c,71,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,2 层,0,3,a,b,c,2,b,a,c,8,2,b,a,c,72,void han

34、oi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,73,void hanoi(int n,char x,char y,char z)1 2 if(n=1)3 move(x,1,z);4 else5 hanoi(n-1,x,z,y);move(x,n,z);hanoi(n-1,y,x,z);8 9,1 层,0,3,a,b,c,3,a,b,c,74,void main(void)i

35、nt n;unsigned char a,b,c;n=3;a=1;b=2;c=3;hanoi(n,a,b,c);0:.,0 层,75,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素.,a1,a2,a3,an,.,入队列,队头,队尾,76,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素.,出队列,77,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在

36、表的一端进行插入,而在另一端删除元素.,78,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素.,79,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素.,80,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素.,81,队列-Queue,队列是一种先进先出(First In First Out-FIFO)的线性表.它

37、只允许在表的一端进行插入,而在另一端删除元素.,a1,a2,a3,an,.,出队列,入队列,队头,队尾,82,双端队列-Deque,a1,a2,a3,an,.,插入,删除,插入,删除,输出受限的双端队列,端1,端2,83,双端队列-Deque,a1,a2,a3,an,.,插入,删除,插入,删除,输出受限的双端队列,输入受限的双端队列,端1,端2,84,队列的抽象数据类型,数据对象:,数据关系:,基本操作:,(1)InitQueue(&Q)/构造空队列(2)DestroyQueue(&Q)/销毁队列(3)ClearQueue(&S)/清空队列(4)QueueEmpty(S)/判空.空-TRUE,

38、ADT Queue,85,队列的抽象数据类型(续),(5)QueueLength(Q)/取队列长度(6)GetHead(Q,&e)/取队头元素,(7)EnQueue(&Q,e)/入队列(8)DeQueue(&Q,&e)/出队列(9)QueueTraverse(Q,visit()/遍历ADT Queue,86,链队列,87,单链队列-队列的链式存储结构,Typedef struct QNode QElemType data;struct Qnode*next;Qnode,*QueuePtr;Typedef struct QueuePtr front;/队头指针 QueuePtr rear;/队尾

39、指针LinkQueue;,88,(a)空队列,(b)元素x入队列,(c)元素y入队列,(d)元素x出队列,89,链队列基本操作的实现,(1)初始化Status InitQueue(LinkQueue/InitQueue,90,(2).销毁队列Status DestroyQueue(LinkQueue return OK:/DestroyQueue,链队列基本操作的实现(续),91,(3).清空队列Status DestroyQueue(LinkQueue return OK:/DestroyQueue,链队列基本操作的实现(续),92,(4)队列判空 Status QueueEmpty(Lin

40、kQueue Q)return(Q.front=Q.rear);/QueueEmpty(5)求队列长度 int QueueLength(LinkQueue Q)return(Q.rear-Q.front);/QueueLength,链队列基本操作的实现(续),93,(6).取队头元素Status GetHead(LinkQueue Q,QElemType/GetHead,链队列基本操作的实现(续),94,(7).入队列Status EnQueue(LinkQueue/EnQueue,链队列基本操作的实现(续),95,(8).出队列Status DeQueue(LinkQueue/DeQueue

41、,链队列基本操作的实现(续),96,(9)链队列的遍历 Status QueueTraverse(LinkQueue Q,Status(*visit)(ElemType)for(p=Q.front-next;pdata)return ERROR;/QueueTraverse Status visit(ElemType e)printf(“The value of the element is%dn”,(int)e);,链队列基本操作的实现(续),97,3.4.3 循环队列-队列的顺序存储,98,99,100,循环队列-队列的顺序存储结构,#define MAXQSIZE 100/最大队列长度T

42、ypedef struct QElemType*base;/初始化的动态分配存储空间 int front;/头指针 int rear;/尾指针SqQueue;,101,(1)初始化Status InitQueue(SqQueue/InitQueue,循环队列基本操作的实现,102,(2).销毁队列Status DestroyQueue(SqQueue return OK:/DestroyQueue,循环队列基本操作的实现(续),103,(3).清空队列Status ClearQueue(SqQueue return OK:/DestroyQueue,循环队列基本操作的实现(续),104,(4)

43、队列判空 Status QueueEmpty(SqQueue Q)return(Q.front=Q.rear);/QueueEmpty(5)求队列长度 int QueueLength(SqQueue Q)return(Q.rear-Q.front+MAXSIZE)%MAXSIZE;/QueueLength,循环队列基本操作的实现(续),105,(6).取队头元素Status GetHead(SqQueue Q,QElemType/GetHead,循环队列基本操作的实现(续),106,(7).入队列Status EnQueue(SqQueue/EnQueue,循环队列基本操作的实现(续),107

44、,(8).出队列Status DeQueue(LinkQueue/DeQueue,循环队列基本操作的实现(续),108,(9)循环队列的遍历 Status QueueTraverse(SqQueue Q,Status(*visit)(ElemType)for(p=Q.front-next;pdata)return ERROR;/QueueTraverse Status visit(ElemType e)printf(“The value of the element is%dn”,(int)e);,循环队列基本操作的实现(续),109,练习,3.17,3.28,5.17(1),(3),(5),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号