欢迎来到天天文库
浏览记录
ID:53879027
大小:23.00 KB
页数:7页
时间:2020-04-10
《c语言数据结构顺序表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构上机实验课后练习报告姓名:冯天明学号:班级:通信1412015年9月28日星期一1、实验一:编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成以下功能。1.初始化顺序表L2.依次采用尾插法或者头插法插入元素a,b,c,d,e3.输出顺序表L4.输出顺序表的长度5.判断顺序表是否为空6.输出顺序表的第四个元素7.输出元素a的位置8.在第三个元素位置插入元素f9.输出顺序表L10.删除顺序表L的第四个元素11.输出顺序表L12.释放顺序表实验代码:#include#include#include#includ
2、e#defineMaxSize20//设置顺序表的初始长度#defineListAdd5//每次申请增加的内存大小#defineOVERFLOW-1#defineOK0#defineERROR-2typedefcharElemType;typedefstruct//顺序表定义{ElemType*elem;intlength;//顺序表长度intlistsize;//顺序表占用的内存空间}SqList;/**************初始化顺序表函数****************/voidInitSq_List(SqList&L){L.elem=newElemType[M
3、axSize];//在堆上申请内存if(!L.elem)exit(OVERFLOW);//内存申请失败L.length=0;L.listsize=L.length;}/***********创建一个顺序表*************/voidGreatSqList(SqList&L,intn){inti;for(i=0;i4、&L){deleteL.elem;//释放指针指向的内存L.length=0;L.listsize=0;}//尾插法插入元素intSqList_Inser(SqList&L,inti,ElemTypee){intj;ElemType*p;if(i<15、6、i>L.length+1)//插入位置非法则退出returnERROR;if(L.length>=L.listsize)//如果初始化申请的空间已满,则重新申请{p=(ElemType*)realloc(L.elem,(L.listsize+ListAdd)*sizeof(ElemType));if(!p)returnOVERFLOW;L.7、elem=p;L.listsize+=ListAdd;}for(j=L.length-1;j>=i-1;j--){L.elem[j+1]=L.elem[j];//元素依次往后移覆盖,实现删除}L.elem[i-1]=e;++L.length;returnOK;}/**********判断顺序表是否为空***********/intListEmpty(SqList&L){return(L.length==0);}/*********获取顺序表长度************/intgetList_Len(SqList&L){returnL.length;}/************取出对应下标元8、素*****************/intgetIndex(SqListL,charelem){intindex=0;while(index=L.length9、10、index<1){printf("下标越界,无法查询!")11、;returnERROR;}returnL.elem[index-1];}/************删除指定位置的元素值************/intDleteElem(SqList&L,intn){intj;if(n>L.length12、13、n<1)returnERROR;for(j=n-1;j
4、&L){deleteL.elem;//释放指针指向的内存L.length=0;L.listsize=0;}//尾插法插入元素intSqList_Inser(SqList&L,inti,ElemTypee){intj;ElemType*p;if(i<1
5、
6、i>L.length+1)//插入位置非法则退出returnERROR;if(L.length>=L.listsize)//如果初始化申请的空间已满,则重新申请{p=(ElemType*)realloc(L.elem,(L.listsize+ListAdd)*sizeof(ElemType));if(!p)returnOVERFLOW;L.
7、elem=p;L.listsize+=ListAdd;}for(j=L.length-1;j>=i-1;j--){L.elem[j+1]=L.elem[j];//元素依次往后移覆盖,实现删除}L.elem[i-1]=e;++L.length;returnOK;}/**********判断顺序表是否为空***********/intListEmpty(SqList&L){return(L.length==0);}/*********获取顺序表长度************/intgetList_Len(SqList&L){returnL.length;}/************取出对应下标元
8、素*****************/intgetIndex(SqListL,charelem){intindex=0;while(index=L.length
9、
10、index<1){printf("下标越界,无法查询!")
11、;returnERROR;}returnL.elem[index-1];}/************删除指定位置的元素值************/intDleteElem(SqList&L,intn){intj;if(n>L.length
12、
13、n<1)returnERROR;for(j=n-1;j
此文档下载收益归作者所有