堆栈数组声明如下:
其中MaxSize是该堆栈的最大容量,top表示当前堆栈顶端的索引值,初始值设为-1表示堆栈为空。
简单的数组仿真堆栈实现代码如下。
值得一提的是,用字符串作字符栈也是一种很好的方法。此时的入栈操作,只是将相应字符加在串首(尾),而出栈操作则是删除串的第一个(最后一个)字符,完全不用考虑栈顶指针的问题。
试用堆栈把一个十进制数转成 d (2≤ d ≤36)进制数输出。
输入为两个非负整数,即 N 和 d 。
输出为一个整数,即转换的 d 进制数。
10 2
1010
将十进制数转换成 d 进制数的方法是“除以 d 取余,逆序排列”,就是用 d 去除要进行转换的十进制数,得到一个商和余数,再用 d 除商得到又一个商和余数,一直继续下去,直到商为0。将得到的所有余数逆序排列,得到的就是 d 进制数了。
例如,将十进制数217转换为二进制数的计算过程如图2.2所示。
图2.2
将余数逆序排列,得到二进制结果11011001。显然,得到的余数依次全部入栈后,再全部出栈的过程恰好就是余数的逆序排列。
行编辑程序(网站题目编号:402002)
表达式求值(网站题目编号:402003)