栈的应用参考模板_第1页
栈的应用参考模板_第2页
栈的应用参考模板_第3页
栈的应用参考模板_第4页
栈的应用参考模板_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、甘肃政法学院本科生实验报告(一)姓名:马大哈学院:计算机科学学院专业:计算机科学与技术 班级:2011级计算机科学与技术本科班实验课程名称:数据结构实验日期: 2012年 10月 10 日指导教师及职称:陆军老师实验成绩:开课时间:2012-2013学年第一学期甘肃政法学院实验管理中心印制1 / 6实验题目十进制转二进制小组合作无姓名马大哈班级2011级计本学 号201181110100一、实验目的学习栈的用法二实验环境Microsoft Visual C+ 6.0三、实验内容与步骤由于栈结构具有后进先出的固有特性,致使栈成为程序设计中的有用工具。十进制数N和其他d进制数的转换是计算机实现计算

2、的基本问题,其解决方法多,其中一个简单算法基于下列原理:N=(Ndiv d)*d+N mod d(其中:div为整除运算,mod为求余运算)假设现要编制一个满足下列要求的程序:对于输入的任意一个非负十进制数,打印输出与其等值的二进制数。由于计算过程是从低位到高位顺序产生二进制数的个数位,而打印输出,一般来说应从高位到低位进行,恰好和计算机过程相反。因此,若将计算过程得到的二进制的各位顺序进栈,则按出栈序列打印输出的即为与输入对应的二进制数。具体代码如下:typedef int SElemType; /* 定义栈元素类型为整型 */ #includec1.h #includec3-1.h /*

3、采用顺序栈 */ #includebo3-1.c /* 利用顺序栈的基本操作 */ void conversion() /* 对于输入的任意一个非负10进制整数,打印输出与其等值的2进制数 */ SqStack s; unsigned n; /* 非负整数 */ SElemType e; InitStack(&s); /* 初始化栈 */ printf(十进制转二进制:n请输入要转换的十进制数:); scanf(%u,&n); /* 输入非负十进制整数n */ while(n) /* 当n不等于0 */ Push(&s,n%2); /* 入栈n除以2的余数(2进制的低位) */ n=n/2;

4、while(!StackEmpty(s) /* 当栈不空 */ Pop(&s,&e); /* 弹出栈顶元素且赋值给e */ if(e=9) printf(%d,e); else printf(%c,e+55); printf(n); void main() conversion(); 四、实验过程与分析本实验是利用栈的后进先出的特性最简单的例子,在这个实验中,栈操作的序列是直线式的,即一味地入栈,然后一味地出栈。可以看出栈的引入简化了程序设计的问题,划分了不同的关注层次,是思考范围缩小了。倘若用数组,那就遮掩了问题的本质,还要分散精力去思考数组下标增减等细节问题。首先申请一个栈,将栈初始化,设置一个变量用来接收输入的数,在进行二进制转换,并将转换后的数依次进栈,最后依次出栈,打印输出。本实验的实验结果如下:五、实验总结 在实验中,应注意头文件的加入,本实验共有三个头文件如下:#inc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论