欢迎来到天天文库
浏览记录
ID:52325684
大小:50.00 KB
页数:5页
时间:2020-03-26
《洛理数据结构实验一.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、洛阳理工学院实验报告系部计算机学院班级B140509学号B14050914姓名李壮威课程名称数据结构实验日期2015.3.17实验名称顺序表的基本操作成绩实验目的:(1)掌握线性表的顺序存储结构的特点;(2)掌握线性表的基本操作:初始化、插入、删除、查找数据元素等运算在顺序存储结构上的实现。实验条件:一人一台电脑,VC++6.0实验内容与算法思想:内容:建立一顺序表,并实现下列操作:1.把元素x插入表中第i个位置;2.查找值为x的元素,若找到将其删除;3.输出表中各元素的值。算法思想:1、编写主函数,对子函数进行声明,以调用函数来实现一部分功能;2、建立子函
2、数:对顺序表初始化;先把需要插入位置后面的元素都往后移动,然后插入元素;逐一查找元素,找到后利用后面元素转移覆盖了该元素以实现元素的删除;用循环输出各元素;(此处可向下续页)运行结果:实验总结:第一次数据结构实验课,我已提前编写好了程序,但是在实验课调试的时候才发现程序不够完善,有时候运行正确,有时候运行失败,在修改调试多次后,找到了出错的语句在值传递,不能把形参传递到实参中,这是很基础的问题,从中发现我对C语言的基础不够掌握,于是我把C语言程序的书拿来再看一遍,把该弄明白的弄明白,C语言基础扎实了在数据结构上编写时才能得心应手。通过这次实验,我学会了如何去
3、建立顺序表,并懂得了如何查找、插入、删除顺序表中的元素,并运用调用函数来实现这些功能。虽然数据结构的程序语句比较多,但是这些句子还是比较简单的,无非是用循环实现,根据功能来编写,把这些功能编写在一起才显得程序变大,在往后的程序编写中语句会越来越多,越来越复杂,但我会越来越努力,完成任务。附:源程序:#include#include#definelistsize100#defineOK1#defineERROR0typedefstruct{intelem[listsize];intlast;}Seqlist;voidmai
4、n(){intInitlist(Seqlist*l,intn);//初始化顺序表intlocateElem(Seqlist*l,inte);//查找值为e的元素,若找到将其删除intn=5;//顺序表长度可用下面两个语句修改//printf("请输入顺序表长度:");//scanf("%d",&n);输入顺序表的元素inti,m;intk;Seqlistl;l.last=0;Initlist(&l,n);//初始化顺序表//把X元素插入表中第i个位置printf("请输入要插入的数:");scanf("%d",&m);printf("请输入要插入位置:"
5、);scanf("%d",&i);if((i<1)
6、
7、(i>l.last+2)){printf("插入位置不合法");}if(l.last>=listsize-1){printf("表已满,无法插入");}if((i>=1)&&(i<=l.last+2)){for(k=l.last;k>=i-1;k--)//为插入元素而移动位置l.elem[k+1]=l.elem[k];l.elem[i-1]=m;l.last++;printf("插入后的顺序表为:");for(i=0;i8、eElem(&l,n);//查找值为x的元素,若找到将其删除printf("");}//初始化顺序表intInitlist(Seqlist*l,intn){inti;printf("请输入顺序表元素(5个数):");for(i=0;ielem[i]);l->last=n-1;}printf("顺序表为:");for(i=0;ielem[i]);}}//查找值为x的元素,若找到将其删除intlocateElem(Seqlist*l,inte){inti=0;in9、tk;printf("请输入要查找的元素:");scanf("%d",&e);while((i<=l->last)&&(l->elem[i]!=e))i++;if(i<=l->last){printf("要查找的元素的位置为:%d",i+1);for(k=i;k<=l->last;k++)l->elem[k]=l->elem[k+1];l->last--;printf("删除该元素后的顺序表为:");for(k=0;klast+1;k++)printf("%d",l->elem[k]);returnOK;}else{printf("查找不到这10、个元素");returnERROR;}}
8、eElem(&l,n);//查找值为x的元素,若找到将其删除printf("");}//初始化顺序表intInitlist(Seqlist*l,intn){inti;printf("请输入顺序表元素(5个数):");for(i=0;ielem[i]);l->last=n-1;}printf("顺序表为:");for(i=0;ielem[i]);}}//查找值为x的元素,若找到将其删除intlocateElem(Seqlist*l,inte){inti=0;in
9、tk;printf("请输入要查找的元素:");scanf("%d",&e);while((i<=l->last)&&(l->elem[i]!=e))i++;if(i<=l->last){printf("要查找的元素的位置为:%d",i+1);for(k=i;k<=l->last;k++)l->elem[k]=l->elem[k+1];l->last--;printf("删除该元素后的顺序表为:");for(k=0;klast+1;k++)printf("%d",l->elem[k]);returnOK;}else{printf("查找不到这
10、个元素");returnERROR;}}
此文档下载收益归作者所有