目的要求:
1.深入了解栈和队列的特征,掌握栈、队列的创建和常见算法的实现。。
2.掌握栈、队列的常见算法的程序实现。在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造方法,接触较复杂问题的递归算法设计。
实验内容:
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数
算法为:
(1)定义栈的顺序存取结构
(2)分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)
(3)定义一个函数用来实现下面问题:
十进制整数X和R作为形参
初始化栈
只要X不为0重复做下列动作
将X%R入栈
X=X/R
只要栈不为空重复做下列动作
栈顶出栈
输出栈顶元素
例如:将十进制数N和其它d进制数的转换是计算机实现计算的基本问题,其解决方案很多,其中最简单方法基于下列原理:即除d取余法。例如:(1348)10=(2504)8
N N div 8 N mod 8
1348 168 4
168 21 0
21 2 5
2 0 2
从中我们可以看出,最先产生的余数4是转换结果的最低位,这正好符合栈的特性即后进先出的特性。所以可以用顺序栈来模拟这个过程。