购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 数组仿真堆栈

堆栈数组声明如下:

其中MaxSize是该堆栈的最大容量,top表示当前堆栈顶端的索引值,初始值设为-1表示堆栈为空。

简单的数组仿真堆栈实现代码如下。

值得一提的是,用字符串作字符栈也是一种很好的方法。此时的入栈操作,只是将相应字符加在串首(尾),而出栈操作则是删除串的第一个(最后一个)字符,完全不用考虑栈顶指针的问题。

■ 402001 十进制转 d 进制

【题目描述】 十进制转 d 进制(NchangeX)

试用堆栈把一个十进制数转成 d (2≤ d ≤36)进制数输出。

【输入格式】

输入为两个非负整数,即 N d

【输出格式】

输出为一个整数,即转换的 d 进制数。

【输入样例】

10 2

【输出样例】

1010

【算法分析】

将十进制数转换成 d 进制数的方法是“除以 d 取余,逆序排列”,就是用 d 去除要进行转换的十进制数,得到一个商和余数,再用 d 除商得到又一个商和余数,一直继续下去,直到商为0。将得到的所有余数逆序排列,得到的就是 d 进制数了。

例如,将十进制数217转换为二进制数的计算过程如图2.2所示。

图2.2

将余数逆序排列,得到二进制结果11011001。显然,得到的余数依次全部入栈后,再全部出栈的过程恰好就是余数的逆序排列。

■ 同步练习

行编辑程序(网站题目编号:402002)

表达式求值(网站题目编号:402003) s7IjJasm8oHQd3m9FQPJ04NyFxLpxi5FmuRqfEnYZ68gWCOK7goREXrohxh0cnhe

点击中间区域
呼出菜单
上一章
目录
下一章
×