欢迎来到天天文库
浏览记录
ID:35972110
大小:149.44 KB
页数:6页
时间:2019-04-29
《实验报告实验三线性栈表的应用实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆大学学生上机实验报告上机课程名称:数据结构上机实验名称:实验3实验名称线性栈表的应用开课学院及实验室:经济与工商管理学院2011年7月1日学院经管学院年级、专业、班信息管理与信息系统姓名苏浩辉学号20100373指导教师陈铿成绩教师评语教师签名:【实验目的】用数组建立一栈,栈最大容量为10,利用进栈出栈操作将35转换成2进制数【实验内容】例程程序代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace顺序栈{classProgram{class
2、Stack{intmaxsize;//顺序栈的容量object[]data;//数组,用于存储栈中的数据inttop;//指示栈顶publicobjectthis[intindex]{get{returndata[index];}set{data[index]=value;}}//栈容量属性publicintMaxsize{get{returnmaxsize;}set{maxsize=value;}}//获得栈顶的属性publicintTop{get{returntop;}}//使用构造器初始化栈publicStack(intsize){data=newobject[s
3、ize];maxsize=size;top=-1;}//求栈的长度(栈中的元素个数)publicintStackLength(){returntop+1;}//判断顺序栈是否为空publicboolIsEmpty(){if(top==-1){returntrue;}else{returnfalse;}}//判断顺序栈是否为满publicboolIsFull(){if(top==maxsize-1){returntrue;}else{returnfalse;}}//入栈操作publicvoidPush(objecte){if(IsFull()){Console.Write
4、Line("栈已满!");return;}data[++top]=e;}//出栈操作,并返回出栈的元素publicobjectPop(){objecttemp=null;if(IsEmpty()){Console.WriteLine("");returntemp;}temp=data[top];top--;returntemp;}//获取栈顶数据元素publicobjectGetTop(){if(IsEmpty()){Console.WriteLine("栈为空!");returnnull;}returndata[top];}}staticvoidMain(string
5、[]args){Stacks=newStack(10);intn=35;while(n>=2){s.Push(n%2);Console.WriteLine("用{0}除以2的余数压栈,现在栈中的元素数为:{1}",n,s.StackLength());n=n/2;}s.Push(1);Console.WriteLine("用1除以2的余数压栈,现在栈中的元素数为:{0}",s.StackLength());Console.ReadLine();for(intj=0;j<10;j++)//循环出栈{Console.WriteLine("{0}",s.Pop());}C
6、onsole.ReadLine();}}运行结果:用n%2的余数圧栈,并显示栈长。弹栈,输出所求的二进制数。【结果及分析】通过这次实验,我了解了顺序栈的物理存储结构,学会了做建立顺序栈以及圧栈、弹栈等操作。但是,在实验中也遇到了很多问题,例如:1.对于很多创建一个新的顺序栈的许多语句不能理解,特别是栈顶指针的语句,至今仍未弄懂。2.昨晚实验之后还是不能很好地理解数组和顺序表之间的联系,定义一个数组之后的相关语句不熟,导致创建栈的语句无法理解。3.整个实验做下来虽然对整体的架构有了了解,但是精确到各个方法各个字段的时候却不太了解。有些语句觉得无法理解,所以只能死记,这影响
7、了以后写程序时的应用。
此文档下载收益归作者所有