mal Int m 3ABICIO printf("Input the number of disks scanf("%od", &m) A B printf(" The steps to moving %3d 2BAC 8 hanoi(m,A,"B’C) (0) 3ABICI O void hanoi(int n, char x, char y, char z) BCA bAC 8 n 3) move(l, x, z) 3AB IcI (4) else hanoi(n-1, x,, y); (6) move(n, x, z) A B hanoi(n-ly, x, Z); (8)} bac 8 (9)} 3ABCO
main() { int m; printf("Input the number of disks scanf("%d",&m); printf("The steps to moving %3d hanoi(m,'A','B','C'); (0) } void hanoi(int n,char x,char y,char z) (1) { (2) if(n==1) (3) move(1,x,z); (4) else{ (5) hanoi(n-1,x,z,y); (6) move(n,x,z); (7) hanoi(n-1,y,x,z); (8) } (9) } A B C 3 A B C 0 2 B A C 8 3 A B C 0 2 B A C 8 1 B C A 6 A B C 3 A B C 0 2 B A C 8 3 A B C 0
mal bAC 8 Int m 3ABICI O printf("Input the number of disks A B scanf("%/od", &m) abc 8 printf(" The steps to moving %3d bac 8 hanoi(m.. C 3ABCO void hanoi(int n char x, char y char z) (2)if(n==1 A B 34 move(l,x,z) bac 8 3ABC O 5 hanoi(n-l.X (6) move(n,x, Z) ABCO hanoi(n-1,y,x, z). (8)} (9) 栈空 Hanoi. c D: fengyibkclpowerlpowerc
main() { int m; printf("Input the number of disks scanf("%d",&m); printf("The steps to moving %3d hanoi(m,'A','B','C'); (0) } void hanoi(int n,char x,char y,char z) (1) { (2) if(n==1) (3) move(1,x,z); (4) else{ (5) hanoi(n-1,x,z,y); (6) move(n,x,z); (7) hanoi(n-1,y,x,z); (8) } (9) } A B C 3 A B C 0 2 B A C 8 1 A B C 8 A B C 3 A B C 0 2 B A C 8 3 A B C 0 栈空 3 A B C 0 2 B A C 8 Hanoi.c D:\fengyi\bkc\power\power.c
心回文游戏:顺读与逆读字符串一样(不含空格) top1.读入字符串 2.去掉空格(原串) a 3压入栈 4原串字符与出栈字符依次比较 字符串:“ madam im adam若不等,非回文 若直到栈空都相等,回文 今多进制输出: 例把十进制数159转换成八进制数 8159余7 819余3 top 3 82 余2 Pp 0 2|3 (159)10=(237
❖回文游戏:顺读与逆读字符串一样(不含空格) d a d top 1.读入字符串 2.去掉空格(原串) 3.压入栈 4.原串字符与出栈字符依次比较 若不等,非回文 若直到栈空都相等,回文 ❖多进制输出: 字符串:“madam im adam” 例 把十进制数159转换成八进制数 (159)10=(237)8 8 159 8 19 8 2 0 2 3 7 余 7 余 3 余 2 top top 7 top 7 3 top 7 3 2
今表达式求值 中缀表达式 后缀表达式(RPN) *btc a ab*c+ a+b*k C abc*+ a+(b*c+d)/e abc*d+e/+ 中缀表达式:操作数栈和运算符栈 例计算2+4-3*6 4 2 6 操作数运算符 操作数运算符操作数运算符 18 12 操作数运算符 操作数运算符
❖表达式求值 中缀表达式 后缀表达式(RPN) a*b+c ab*c+ a+b*c abc*+ a+(b*c+d)/e abc*d+e/+ 中缀表达式:操作数栈和运算符栈 例 计算 2+4-3*6 操作数 运算符 2 4 + 操作数 运算符 6 - 操作数 运算符 6 - 3 6 * 操作数 运算符 6 - 18 操作数 运算符 12
后缀表达式求值步骤 1、读入表达式一个字符 2、若是操作数,压入栈,转4 3、若是运算符,从栈中弹出2个数,将运算结果再压入栈 4、若表达式输入完毕,栈顶即表达式值; 若表达式未输入完,转1 例计算4135后级表达式:435+ op top top top top top 4
后缀表达式求值步骤: 1、读入表达式一个字符 2、若是操作数,压入栈,转4 3、若是运算符,从栈中弹出2个数,将运算结果再压入栈 4、若表达式输入完毕,栈顶即表达式值; 若表达式未输入完,转1 top 4 top 4 3 top 7 3 5 top 例 计算 4+3*5 后缀表达式:435*+ top 4 15 top 19