今天实验课又写了几串代码
首先是用栈实现进制转换
1 | /***链栈实现数制的转换***/ |
分析一下:
- 用push入栈,入栈存放的是余数,这里存放数据的方式是链栈。
- 定义一个int类型的数来接受pop出栈的数,并cin
- 入栈循环,结束条件:传入的数不为0,即余数整数位不为0;
- 出栈循环,结束条件:栈为空,定义了一个函数来判断栈是否为空
第二个实验
第二个是链表求最值,还要输出节点的数据,这个感觉不太像栈的内容,这里要求用递归来实现节点输出
1 | /***依次输出链表中的各个结点***/ |
后插法创建了链表
开始遇到了一些问题:当输入两位数时,输出全是一位数,求最值也始终求不对,上课时有点疑惑,逻辑代码明明是正确的
下课来到自己电脑面前,深吸一口气一边说话一边看着代码的首部,我去,typedef char ElemType;
,怪不得,数的全是字符,能对才怪,老师这是故意的吧
幸好我发现了,解决了,真开心
递归调用!!!,求十进制转八进制
- 一:
1 | int func(int num) |
- 二:
1 | void change (int n) |