1 / 11
文档名称:

实验一顺序表基本操作.doc

格式:doc   大小:43KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验一顺序表基本操作.doc

上传人:漫山花海 2019/3/3 文件大小:43 KB

下载得到文件列表

实验一顺序表基本操作.doc

相关文档

文档介绍

文档介绍:,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。,实现顺序表的插入、删除、查找以及求并集等运算。、编辑、调试和运行过程。。。。。三实验内容::(1)初始化顺序表La。(2)将La置为空表。(3)销毁La。(4)在La中插入一个新的元素。(5)删除La中的某一元素。(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。(7)打印输出La中的元素值。:(1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。(2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。(3)假设两个顺序线性表La和Lb分别表示两个集合A和B,利用union_Sq操作实现A=A∪B。四思考与提高假设两个顺序线性表La和Lb分别表示两个集合A和B,如何实现A=A∩B?:(1)初始化顺序表La。(2)将La置为空表。(3)销毁La。(4)在La中插入一个新的元素。(5)删除La中的某一元素。(6)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。(7)打印输出La中的元素值。#include<>#include<>#RUE1#defineFALSE0#defineOK1#defineERROR0#defineYES1#defineNO0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;Statuscmp(ElemTypea,ElemTypeb){if(a==b)returnYES;elsereturnNO;}//构造空的顺序表LaStatusInitList_Sq(SqList&L){=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!)exit(OVERFLOW);=0;=LIST_INIT_SIZE;returnOK;}//撤销线性表L;StatusDestroy_Sq(SqList&L){free();=NULL;=0;=0;returnOK;}//清空线性表StatusClearList_Sq(SqList&L){=0;//memset(L,0,sizeof(L));returnOK;}//在顺序线性表L的第i个元素之前插入新的元素eStatusListInsert_Sq(SqList&L,inti,ElemTypee){ElemType*p;if(i<1||i>+1)returnERROR;if(>=){ElemType*newbase=(ElemType*)realloc(,(+LISTINCREMENT)*sizeof(ElemType));if(!newbase)returnERROR;=newbase;+=LISTINCREMENT;}ElemType*q=&([i-1]);for(p=&([-1]);p>=q;--p)*(p+1)=*p;*q=e;++;returnOK;}//在顺序线性表L中删除第i个元素,并用e返回其值StatusListDelete_Sq(SqList&L,inti,ElemType&e){ElemType*p,*q;if(i<1||i>)returnERROR;p=&([i-1]);e=*p;q=+-1;for(++p;p<=q;++p)*(p-1)=*p;--;returnOK;}//ListDelete_SqStatusLocateElem_Sq(SqListL,ElemTypee,Status(*c