数据结构域算法设计-实验1顺序表和链表基本操作(moban)

数据结构域算法设计-实验1顺序表和链表基本操作(moban)

ID:16484540

大小:88.00 KB

页数:9页

时间:2018-08-10

数据结构域算法设计-实验1顺序表和链表基本操作(moban)_第1页
数据结构域算法设计-实验1顺序表和链表基本操作(moban)_第2页
数据结构域算法设计-实验1顺序表和链表基本操作(moban)_第3页
数据结构域算法设计-实验1顺序表和链表基本操作(moban)_第4页
数据结构域算法设计-实验1顺序表和链表基本操作(moban)_第5页
资源描述:

《数据结构域算法设计-实验1顺序表和链表基本操作(moban)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一、二:线性表的应班级B12512学号16姓名冯月一、实验预备知识1复习C++中编写函数的相关内容。2复习如何用主函数将多个函数连在一起构成一个C++完整程序。二、实验目的1掌握线性表的顺序和链式存储结构2熟练运用线性表在顺序存储方式下的初始化、创建、输出、插入和删除运算3熟练运用线性表在链式存储方式下的创建、输出、插入和删除运算三、实验要求1编写初始化并创建线性表和输出线性表的算法。2编写对线性表插入和删除运算算法,要判断位置的合法性和溢出问题。3编写一个主函数,将上面函数连在一起,构成一个完整的程序。4将实验源程序调试并运行,写出输入

2、、输出结果,并对结果进行分析。四、实验步骤顺序表实验内容:1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。2.初始化并建立顺序表。3.编写顺序表输出算法。(内存中开辟的单元数为8)4.依次插入3,21,15三个数,分别插入在第4,6和2位置,每插入一次都要输出一次顺序表。5.删除第5,第3和第12个位置上的元素,每删除一个元素都要输出一次顺序表。单链表实验内容:1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。2.建立一个带表头结点的单链表(前插入法和尾插入法都可以)。3.编写单链表输出算

3、法。4.依次插入3,21,15三个数,分别插入在第4,6和12位置,每插入一次都要输出一次单链表。5.删除第5,第3和第12个位置上的元素,每删除一个元素都要输出一次单链表。五、实验结果1.给出程序清单及输入/输出结果。顺序表源程序:#include#include#include#defineINIT_LIST_SIZE8#defineLIST_INCREMENT5#defineTURE1#defineFALSE0#defineOVERFLOW-2#defineOK1#defineE

4、RROR-1typedefintElemType;typedefintStatus;第9页typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;StatusInitSqList(SqList&L)//建空表即初始化操作{L.elem=(ElemType*)malloc(INIT_LIST_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=INIT_LIST_SIZE;returnOK;}vo

5、idCreateSqList(SqList&L,intn)//创建操作{inti;for(i=1;i<=n;i++){scanf("%d",&L.elem[i-1]);L.length++;}}StatusInsertSqList(SqList&L,inti,ElemTypee)//插入操作{ElemType*q,*p;if(i<1

6、

7、i>L.length+1)returnERROR;if(L.length>=L.listsize){ElemType*newbase;newbase=(ElemType*)realloc(L.elem,(L.l

8、istsize+LIST_INCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LIST_INCREMENT;}q=&(L.elem[i-1]);//q为插入位置for(p=&(L.elem[L.length]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;return0;}StatusDeleteSqList(SqList&L,inti,ElemType&e){//删除操作没有返回e?ElemType*q

9、,*p;if((i<1)

10、

11、(i>L.length))returnERROR;第9页p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p)*(p-1)=*p;--L.length;returnOK;}voidPrintSqList(SqListL)//输出操作{inti;for(i=0;i<=L.length-1;i++)printf("%d",L.elem[i]);printf("");}voidmain(){SqListL;inte;if(InitSqList(L)==1

12、)printf("创建顺序表成功!");elseprintf("创建顺序表成功!");printf("*******************************

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。