实验一 顺序表基本操作

实验一 顺序表基本操作

ID:43451842

大小:43.51 KB

页数:11页

时间:2019-10-03

实验一 顺序表基本操作_第1页
实验一 顺序表基本操作_第2页
实验一 顺序表基本操作_第3页
实验一 顺序表基本操作_第4页
实验一 顺序表基本操作_第5页
资源描述:

《实验一 顺序表基本操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一顺序表基本操作一实验目的1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。3.掌握对多函数程序的输入、编辑、调试和运行过程。二实验要求1.预习C语言中结构体的定义与基本操作方法。2.对顺序表的每个基本操作用单独的函数实现。3.编写完整程序完成下面的实验内容并上机运行。4.整理并上交实验报告。三实验内容:1.编写程序实现顺序表的下列基本操作:(1)初始化顺序表La。(2)将La

2、置为空表。(3)销毁La。(4)在La中插入一个新的元素。(5)删除La中的某一元素。(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。(7)打印输出La中的元素值。2.编写程序完成下面的操作:(1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。(2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。(3)假设两个顺序线性表La和Lb分别表示两个集合A和B,利用union_Sq操作实现A=A∪B。四思考与提高假设两个顺序线性表La和Lb

3、分别表示两个集合A和B,如何实现A=A∩B?1.编写程序实现顺序表的下列基本操作:(1)初始化顺序表La。(2)将La置为空表。(3)销毁La。(4)在La中插入一个新的元素。(5)删除La中的某一元素。(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。(7)打印输出La中的元素值。#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineYES1

4、#defineNO0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;Statuscmp(ElemTypea,ElemTypeb){if(a==b)returnYES;elsereturnNO;}//

5、构造空的顺序表LaStatusInitList_Sq(SqList&L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;returnOK;}//撤销线性表L;StatusDestroy_Sq(SqList&L){free(L.elem);L.elem=NULL;L.length=0;L.listsize=

6、0;returnOK;}//清空线性表StatusClearList_Sq(SqList&L){L.length=0;//memset(L,0,sizeof(L));returnOK;}//在顺序线性表L的第i个元素之前插入新的元素eStatusListInsert_Sq(SqList&L,inti,ElemTypee){ElemType*p;if(i<1

7、

8、i>L.length+1)returnERROR;if(L.length>=L.listsize){ElemType*newbase=(El

9、emType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)returnERROR;L.elem=newbase;L.listsize+=LISTINCREMENT;}ElemType*q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;returnOK;}//在顺序线性表L中删除第i个元素,

10、并用e返回其值StatusListDelete_Sq(SqList&L,inti,ElemType&e){ElemType*p,*q;if(i<1

11、

12、i>L.length)returnERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;++p)*(p-1)=*p;--L.length;returnOK;}//ListDelete_SqStatusLocateElem_Sq(SqListL,ElemTypee,St

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

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

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