栈的相关操作及实现
- 格式:doc
- 大小:86.50 KB
- 文档页数:5
课程名称:数据结构
实验项目:栈的相关操作及其实现
姓名:
专业:计算机科学与技术专业
班级:计算机
学号:
计算机科学与技术学院
20 15 年10 月28 日
实验项目名称:栈的相关操作及其实现( 2 学时)
一、实验目的
1.熟练掌握栈的基本知识;
2.利用栈的基本操作(初始化,入栈,出栈等)实现相关操作;
3.借助实验的机会提高自身程序设计能力及考虑问题的全面性。
二、实验内容
利用栈的基本操作(初始化,入栈,出栈等)实现对一个十进制数进行十进制内的数制转换。
三、实验步骤
1.利用编译器code::blocks 创建相应工作环境;
2.根据栈的相关基本算法创建一个空栈;
3.根据数制转换的数学算法将数值入栈,出栈达到实验目的;
4.程序的调试使程序达到实验目的要求。
四、实验结果
上图为输入需要转换的数20;
输入要转换的数制20转换为2进制数
实验结果209转换为2进制数的结果为10100。
经验证,实验结果正
确。
五、程序代码
实验中均利用教材中的基本算法
1.实验Main函数程序:
A.将输入的数除以将要转换的数制后的数值逐一顺序入栈(利用while语句)
while (n)
{
Push(s, n % m);
n = n / m;
}
其中push为栈的入栈算法
将数值顺序入栈之后,根据顺序栈后入先出的特点,将栈中的数出栈后即为数制转换后的数值
while (!StackEmpty(s))
{
Pop(s, e);
printf("%d", e);
}
其中pop为栈的出栈算法:e=*(--(*S).top);
StackEmpty为判断栈是否为空的算法:
if (S.top == S.base)
return TRUE;
else
return FALSE;。