预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数据结构实验(1) (线性表的操作) 实验目的 会定义线性表的顺序存储类型。 熟悉C或C++程序的基本结构,掌握程序中的用户头文件、实现文件和主文件之间的相互关系及各自的作用。 熟悉对线性表的一些基本操作和具体的函数定义。 熟悉TurboC或VC操作环境的使用以及多文件程序的输入、编辑、调试和运行的全过程。 程序要求: 该程序的功能是对元素类型为整型的顺序存储的线性表进行一些操作。该程序包含三个文件,一个为头文件,用来存储定义的线性表结构类型以及对线性表进行的各种操作的函数声明;第二个为线性表操作的实现文件,用来存储每一种线性表操作的具体函数定义;第三种为主文件,用来定义线性表和调用线性表的一些操作,实现对给定线性表的具体运算。 代码如下: #include<iomanip.h> #include<stdlib.h> constintML=10; //定义ElemType为int类型 typedefintElemType; //线性表顺序存储类型 structLinearList { ElemType*list;//存线性表元素 intsize;//存线性表长度 intMaxSize;//存list数组长度 }; //初始化线性表 voidInitList(LinearList&L,intms) { L.list=newElemType[ms]; if(!L.list){ cerr<<"Memoryallocationfailure!"<<endl; exit(1); } L.size=0; L.MaxSize=ms; } //清空线性表 voidClearList(LinearList&L) { L.size=0; } //求线性表长度 intListSize(LinearList&L) { returnL.size; } //检查线性表是否为空 boolListEmpty(LinearList&L) { returnL.size==0; } //检查线性表是否为满 boolListFull(LinearList&L) { returnL.size==L.MaxSize; } //遍历线性表 voidTraverList(LinearList&L) { for(inti=0;i<L.size;i++)cout<<L.list[i]<<''; cout<<endl; } //从线性表中查找元素 boolFindList(LinearList&L,ElemType&item) { for(inti=0;i<L.size;i++) if(L.list[i]==item){ item=L.list[i]; returntrue; } returnfalse; } //更新线性表中的给定元素 boolUpdateList(LinearList&L,constElemType&item) { for(inti=0;i<L.size;i++) if(L.list[i]==item){ L.list[i]=item; returntrue; } returnfalse; } //向线性表的表头、表尾或合适位置插入元素 boolInsertList(LinearList&L,constElemType&item,intmark) { if(ListFull(L))returnfalse; if(mark>0){ for(inti=L.size-1;i>=0;i--) L.list[i+1]=L.list[i]; L.list[0]=item; } elseif(mark<0)L.list[L.size]=item; else{for(inti=0;i<L.size;i++) if(item<L.list[i])break; for(intj=L.size-1;j>=i;j--) L.list[j+1]=L.list[j]; L.list[i]=item; } L.size++; returntrue; } //从线性表中删除表头、表尾或等于给定值的元素 boolDeleteList(LinearList&L,ElemType&item,intmark) { if(ListEmpty(L))returnfalse; if(mark>0){ item=L.list[0]; for(inti=1;i<L.size;i++) L.list[i-1]=L.list[i]; } elseif(mark<0)item=L.list[L.size-1]; else{for(inti=0;i<L.size;i+