厦门理工学院数据结构实验2

厦门理工学院数据结构实验2

ID:40635215

大小:86.50 KB

页数:7页

时间:2019-08-05

厦门理工学院数据结构实验2_第1页
厦门理工学院数据结构实验2_第2页
厦门理工学院数据结构实验2_第3页
厦门理工学院数据结构实验2_第4页
厦门理工学院数据结构实验2_第5页
资源描述:

《厦门理工学院数据结构实验2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》实验报告实验序号:2          实验项目名称:顺序表的操作学  号姓  名专业、班级实验地点实1#514指导教师林仙丽实验时间2013-10-18一、实验目的及要求1.掌握线性表的顺序存储类型;2.熟练掌握顺序表的基本操作和具体的函数实现。二、实验设备(环境)及要求微型计算机;windows操作系统;MicrosoftVisualStudio6.0集成开发环境。三、实验内容与步骤1.设A、B均为用数组实现的List类型的顺序表,试设计一个函数Alternate(A,B),从表A中第1个元素开始,交替地用表A和表B中元素组成一个新表。运行结果截图:2.顺序表表示和实现线

2、性表的如下:#defineLIST_INIT_SIZE10#defineLISTINCREMENT5typedefstruct{ElemType*elem;intlength;intListSize;}sqlist;intInitList_sq(sqlist*l)/*initialthelistl*/{l->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!l->elem){printf("无法分配空间!");return1;}else{l->length=0;l->ListSize=LIST_INIT_SIZE;pr

3、intf("ok");return0;}}intListInsert_Sq(sqlist*L,inti,ElemTypee){ElemType*q,*p;if(i<1

4、

5、i>L->length+1)return1;if(L->length>=L->ListSize){ElemType*newbase;newbase=(ElemType*)realloc(L->elem,(L->ListSize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)return1;L->elem=newbase;L->ListSize+=LISTINCREMENT;}q

6、=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L->length;return0;}【要求】实现算法将一个顺序表中从第i个结点开始连续插入k个结点。运行结果截图:四、分析与讨论刚开始敲主函数时,由于一直没有给结构体指针*m初始化,导致运行一直出错,找了一个多小时的bug,还是没找着。最后在大神杨靖钰的帮助下,先定义了一个结构体list,再用指针m指向list,即m=*list。之后一切都变简单了。五、教师评语签名:日期:成绩附源程序清单:1.#include#includ

7、e#defineLIST_INIT_SIZE10#defineLISTINCREMENT5typedefintElemType;typedefstruct{ElemType*elem;intlength;intListSize;}sqlist;intInitList_sq(sqlist*l)/*initialthelistl*/{l->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!l->elem){printf("无法分配空间!");return1;}else{l->length=0;l->Li

8、stSize=LIST_INIT_SIZE;printf("ok");return0;}}voidAlternate(sqlist*A,sqlist*B){ElemTypei;sqlistlist;sqlist*C;C=&list;InitList_sq(C);C->length=A->length+B->length;while(i){if(C->length>=C->ListSize){ElemType*newbase;newbase=(ElemType*)realloc(C->elem,(C->ListSize+LISTINCREMENT)*sizeof(ElemType));

9、C->elem=newbase;C->ListSize+=LISTINCREMENT;}elsebreak;}for(i=0;ilength;i++){C->elem[2*i]=A->elem[i];C->elem[2*i+1]=B->elem[i];}for(i=0;ilength;i++)printf("%d",C->elem[i]);}voidmain(){ElemTypei;sqlistlist1,list2

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

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

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