欢迎来到天天文库
浏览记录
ID:28525494
大小:125.66 KB
页数:19页
时间:2018-12-10
《线性表---数据结构》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一.实验目的1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对性表的一些基本操作和具体的函数定义。2.占我顺序表的基本操作,实现顺序表的插入,删除,查找以及求并集等运算。3.掌握对多函数的输入,编辑,调试,和运行过程。二.实验要求1.预习C语言中结构体的定义与基本操作方法。2.顺序表的每个基本操作单独的函数的实现。3.编写完整程序完成下面的实验内容并上机运行。4.整理并上交实验报告。三.实验内容1.编写顺序表的下列基本操作:(1)初始化顺序表La。(2)将La置为空表。(3)销毀La。(4)在La中插入一个新的元素。(5)删除La中的某一元素
2、。(6)在La中查找元素,如找到,则返回它在第一次出现的位置,否则返回0.(7)打印输出。1.思考题假设两个顺序线性表La和Lb分别表示两个集合A和B,如何实现A=AnB?2.程序代码与测试结果截图(1)顺序表的基本操作include#defineStatusint#defineOK1#defineERROR0#defineOVERFLOW0#defineMAXSIZE20#defineElemTypefloatusingnamespacestd;//创建顺序表typedefstruct{ElemType*elem;intleng
3、th;}SqList;//初始化顺序表并置空StatuslnistSqList(SqList&L){L.elem=newElemType[MAXSIZE];L.length=O;returnOK;}//顺序表插值StatuslnsertSqList(SqList&L,inti,ElemTypee){intj;if(i==L.length+1){L.elem[i-1]=e;++L.length;returnOK;}if((i<1)
4、
5、(i>L.length+1)){cout<<"插值操作有误!!请重新操作n«endl;returnERROR;}if(L
6、.length==MAXSIZE)cout<<"插值操作有误!!请重新操作n«endl;returnERROR;}for(j=L.length-1;j〉=i-1;j--)L.elem[j+1]=L.elem[j];L.elem[i-1]=e;++L.length;returnOK;}//显示顺序表中的全部元素StatusshowSqList(SqList&L){inti;cout«H"<7、endl;cout«""«endl;returnOK;}//顺序表中按值查找StatusLocateSqList(SqList&L,ElemTypee){inti;for(i=0;i8、9、(10、i>L.length))returnERROR;for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j];-L.length;returnOK;}//清空顺序表StatusClearSqList(SqList&L){L.length=O;returnOK;}intmain(){SqListSL;charc;intn,i;floata;cout«n请对顺序表进行初始化,请输入元素个数n=";cin»n;if(lnistSqList(SL))for(i=1;i<=n;i++)cout«"请输入第"<11、";cin»a;lnsertSqList(SL,i,a);}showSqList(SL);loop:cout<<"现在使用顺序表插值功能,请输入在第几个元素前插入何值";cin»n»a;cout«endl;if(!lnsertSqList(SL,n,a))gotoloop;cout«endl;showSqList(SL);cout«n现在使用顺序表删除功能,请输入删除第几个元素”;cin»n;DeleteSqList(SL,n);showSqList(SL);cout«endl«n现在使用顺序表的寻值功能n«endl«n请输入元素值:";cin»a;12、LocateSqList(SL,a);cout«"是否使用顺序表清空功能y/ncin»c;if(c==y){
7、endl;cout«""«endl;returnOK;}//顺序表中按值查找StatusLocateSqList(SqList&L,ElemTypee){inti;for(i=0;i8、9、(10、i>L.length))returnERROR;for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j];-L.length;returnOK;}//清空顺序表StatusClearSqList(SqList&L){L.length=O;returnOK;}intmain(){SqListSL;charc;intn,i;floata;cout«n请对顺序表进行初始化,请输入元素个数n=";cin»n;if(lnistSqList(SL))for(i=1;i<=n;i++)cout«"请输入第"<11、";cin»a;lnsertSqList(SL,i,a);}showSqList(SL);loop:cout<<"现在使用顺序表插值功能,请输入在第几个元素前插入何值";cin»n»a;cout«endl;if(!lnsertSqList(SL,n,a))gotoloop;cout«endl;showSqList(SL);cout«n现在使用顺序表删除功能,请输入删除第几个元素”;cin»n;DeleteSqList(SL,n);showSqList(SL);cout«endl«n现在使用顺序表的寻值功能n«endl«n请输入元素值:";cin»a;12、LocateSqList(SL,a);cout«"是否使用顺序表清空功能y/ncin»c;if(c==y){
8、
9、(
10、i>L.length))returnERROR;for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j];-L.length;returnOK;}//清空顺序表StatusClearSqList(SqList&L){L.length=O;returnOK;}intmain(){SqListSL;charc;intn,i;floata;cout«n请对顺序表进行初始化,请输入元素个数n=";cin»n;if(lnistSqList(SL))for(i=1;i<=n;i++)cout«"请输入第"<
11、";cin»a;lnsertSqList(SL,i,a);}showSqList(SL);loop:cout<<"现在使用顺序表插值功能,请输入在第几个元素前插入何值";cin»n»a;cout«endl;if(!lnsertSqList(SL,n,a))gotoloop;cout«endl;showSqList(SL);cout«n现在使用顺序表删除功能,请输入删除第几个元素”;cin»n;DeleteSqList(SL,n);showSqList(SL);cout«endl«n现在使用顺序表的寻值功能n«endl«n请输入元素值:";cin»a;
12、LocateSqList(SL,a);cout«"是否使用顺序表清空功能y/ncin»c;if(c==y){
此文档下载收益归作者所有