还剩3页未读,继续阅读
文本内容:
南京工程学院实验报告课程名称数据结构实验名称实验一线性表操作 系部经济管理系班级信管091姓名时云仙学号209090710实验时间2011年9月17日9时59分~11时40分地点机房机位评语指导教师夏勇xiayonghello@
126.com成绩注将实验成果文件(包含实验报告电子文件、程序源代码文件等,用WinRar打包,以班级_学号_实验X.RAR文件形式交付指导老师
一、实验目的
1.熟悉上机环境,进一步掌握语言的结构特点
2.掌握线性表的顺序存储结构的定义及实现
3.掌握线性表的链式存储结构——单链表的定义及实现
4.掌握线性表在顺序存储结构即顺序表中的各种基本操作
5.掌握线性表在链式存储结构——单链表中的各种基本操作
二、实验内容
1.顺序线性表的建立、插入及删除
2.链式线性表的建立、插入及删除
三、实验步骤
1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度
2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素
683.建立一个带头结点的单链表,结点的值域为整型数据要求将用户输入的数据按尾插入法来建立相应单链表
四、程序主要语句及作用程序1的主要代码附简要注释publicstructsequenlist{publicconstint__XSIZE=1024;/*最大值为1024*/publicelemtype[]vec;publicintlen;/*顺序表的长度*/publicsequenlistintn{vec=newelemtype[__XSIZE];len=n;}};classProgram{staticvoidMainstring[]args{sequenlistlist1=newsequenlist5;forinti=0;i5;i++{list
1.vec[i]=i;}forinti=0;i5;i++{Console.Write{0}---list
1.vec[i];}Console.WriteLine\n;Console.WriteLine表长{0}\nlist
1.len;Console.ReadKey;}}程序2的主要代码附简要注释publicvoidinsertlistintiintx{iflen=__XSIZEthrownewEx__ption上溢;/*长度大于最大值则抛出异常*/ifi1||ilen+1thrownewEx__ption位置;/插入位置小于1或大于len+1则抛出插入位置错误的异常forintj=len;j=i;j--vec[j]=vec[j-1];//注意第j个元素存在数组下标为j-1处vec[i-1]=x;len++;}};classProgram{staticvoidMainstring[]args{sequenlistlist2=newsequenlist7;list
2.vec
[0]=21;list
2.vec
[1]=23;list
2.vec
[2]=14;list
2.vec
[3]=5;list
2.vec
[4]=56;list
2.vec
[5]=17;list
2.vec
[6]=31;Console.Write请输入第i个位置插入元素;intloc=Convert.ToInt32Console.ReadLine;Console.Write请输入第{0}个位置插入的元素loc;intele=Convert.ToInt32Console.ReadLine;Console.WriteLine插入前的线性表;forinti=0;ilist
2.len;i++{Console.Write{0}---list
2.vec[i];}Console.WriteLine\n;list
2.insertlistlocele;Console.WriteLine插入后的线性表;forinti=0;ilist
2.len;i++{Console.Write{0}---list
2.vec[i];}Console.WriteLine\n;Console.ReadKey;}}程序3的主要代码附简要注释classNode{privateintnum;publicintNum{set{num=value;}/输入值get{returnnum;}/获得值}privateNodenext;publicNodeNext{set{next=value;}get{returnnext;}}}classPp{staticvoidMainstring[]args{Nodehead;NodetempNodetempNode1;inti;head=newNode;Console.WriteLine输入六项数据\n;Console.Write输入第1项数据:;head.Num=Convert.ToInt32Console.ReadLine;head.Next=null;tempNode=head;fori=1;i6;i++{tempNode1=newNode;Console.Write输入第{0}项数据:i+1;tempNode
1.Num=Convert.ToInt32Console.ReadLine;/插入项转换为整形数值tempNode
1.Next=null;tempNode.Next=tempNode1;tempNode=tempNode.Next;}Console.WriteLine线性表:;tempNode=head;fori=0;i6;i++{Console.Write{0}tempNode.Num;ifi5{Console.Write--;}tempNode=tempNode.Next;}Console.ReadKey;}}
五、程序运行结果截图程序1程序2程序3
六、收获,体会及问题写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是__完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高这次试验刚开始做时完全不知道从哪下手,才刚上了几节课,对于线性表、链式表都不是理解的很透彻,不知道用哪个软件编写程序对于其建立、插入、删除、等操作更是一点都不会后来经过老师放在投影仪上的一些实例代码,知道了大概的格式然后又仔细分析每个代码的意思、作用并翻阅了一些相关书籍,看了好多个实例后终于有了点头绪开始着手写代码,第一次运行出现了很多错误,有时输出的结果和自己设计所想的不一样、有时运行不出来等等,不是格式错误就是表达式写错经过多次修改代码后终于成功运行而通过这次试验我在过程中也渐渐掌握了语言的结构特点、线性表的顺序存储结构的定义及实现、单链表的定义及实现、线性表在顺序存储结构即顺序表中的各种基本操作以及单链表中的各种基本操作让我受益良多。