《线性表的顺序存储》实验报告

2019-09-01 23:32

《线性表的顺序存储》实验报告

1.需解决的的问题

利用顺序表,设计一组输入数据。

2.数据结构的定义

typedefstruct{

ElemType *elem; int length; intlistsize; }SqList;

3.程序的结构图

插入元素 删除元素 逆转元素 创建一个顺序表,并输入数据选择菜单,用户选择操作输出元素 摧毁线性表 下一次操作退出程序 清空线性表 输出线性表长度 查找元素

4.函数的功能

1)初始化一个空顺序表 voidInitSqList(SqList *L){ L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) exit(OVERFLOW); L->length=0; L->listsize=LIST_INIT_SIZE; }

2)输入元素

voidPushSqList(SqList *L){ inti; printf(\ scanf(\ printf(\ for(i=0;ilength;i++){ printf(\ scanf(\ } }

3)在指定位置插入一个指定的元素 voidInsertSqList(SqList *L,inti,ElemType x){ ElemType *newbase; intn,m; if(i<1||i>L->length+1){ printf(\ } if(L->length>=L->listsize){ newbase=(ElemType*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase) exit(OVERFLOW); L->elem=newbase; L->listsize+=LISTINCREMENT; } else{ for(n=L->length;n>=i;n--) { ++L->length; L->elem[n]=L->elem[n-1]; } L->elem[i-1]=x; printf(\ for(m=0;mlength+1;n++)

printf(\ } }

4)删除指定位置的元素 voidDelSqList(SqList *L,inti){ ElemType *p,*q; ElemType x; int n; if(i<1||i>L->length) printf(\ p=&(L->elem[i-1]); x=*p; for(q=p;q<&(L->elem[L->length-1]);q++) *q=*(q+1); L->length--; printf(\ printf(\ for(n=0;nlength-1;n++) printf(\}

5)将顺序表中所有的元素颠倒 voidChangeoverSqList(SqList *L){ SqList S; inti,j; if(L->length==L->listsize) S.elem=(ElemType*)malloc(L->length*sizeof(ElemType)); if(!S.elem) exit(OVERFLOW); else{ for(i=0;ilength;i++) S.elem[i]=L->elem[L->length-i-1]; for(i=0;ilength;i++) L->elem[i]=S.elem[i]; } printf(\ for(j=0;jlength;i++) printf(\}

6)按顺序输出表中元素 voidPrintSqList(SqList *L){ inti; for(i=0;ilength;i++) printf(\}

7)摧毁顺序表

voidDestroySqList(SqList *L) { if(L->elem) free(L->elem); }

8)清空顺序表

voidClearSqList(SqList *L){ L->length=0; }

9)查找指定位置的元素,并返回该元素的值 intGetElem(SqList *L,inti){ ElemType x; if(i<1||i>L->length+1) { printf(\ } else{ x=L->elem[i-1]; printf(\ } }

5.输入/输出数据

1)创建一个顺序表,先输入表长度,然后输入数据

2)选择菜单,进行不同操作

选‘1’,在指定位置插入指定元素

选‘2’,删除指定位置的元素

选‘3’,颠倒顺序表中元素的顺序 选‘4’,按顺序输出表中的元素 选‘5’,摧毁顺序表 选‘6’,清空线性表 选‘7’,输出当前顺序表的长度

选‘8’,输出指定位置的元素

选‘9’,退出该程序

6.总结

这个实验让我更好的掌握了在线性表的顺序存储中如何初始化,如何进行输入输出的处理,以及各种常用功能是怎样实现的。在顺序存储中,我们应该注意内存分配的问题,如果需要处理的数据量较大,申请的初始内存不够,我们就需要增加分配存储空间。


《线性表的顺序存储》实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:mobile phone

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: