112208101118宋波-软件基础试验

112208101118宋波-软件基础试验

ID:22425358

大小:414.50 KB

页数:31页

时间:2018-10-29

112208101118宋波-软件基础试验_第1页
112208101118宋波-软件基础试验_第2页
112208101118宋波-软件基础试验_第3页
112208101118宋波-软件基础试验_第4页
112208101118宋波-软件基础试验_第5页
资源描述:

《112208101118宋波-软件基础试验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一顺序表的建立和基本运算一、实验目的1、掌握顺序表存储结构的定义及C/C++语言实现2、掌握顺序表的各种基本操作及C/C++语言实现3、设计并实现有序表的遍历、插入、删除等常规算法二、实验环境PC微机,Windows,DOS,TurboC或VisualC++三、实验内容2、顺序表的就地逆转(1)问题描述顺序表的就地逆转是指在顺序表现有空间的基础上,将顺序表中的数据元素交换位置排列,排列完之后,新的顺序序列与原来的顺序序列刚好相反。如原来顺序序列“abcdef”,就地逆转之后的新顺序序列为“fedcba”。实验源程序如下:#include

2、io.h>#include#defineMaxSize50typedefcharElemType;typedefstructSqList{ElemTypedata[MaxSize];intlength;};voidInitList(SqList*&L){L=(SqList*)malloc(sizeof(SqList));L->length=0;}voidDestroyList(SqList*L)31{free(L);}intListEmpty(SqList*L){return(L->length==0);}intListLeng

3、th(SqList*L){return(L->length);}voidDispList(SqList*L){inti;if(ListEmpty(L))return;for(i=0;ilength;i++)printf("%c",L->data[i]);printf("");}intGetElem(SqList*L,inti,ElemType&e){if(i<1

4、

5、i>L->length)return0;e=L->data[i-1];return1;}intLocateElem(SqList*L,ElemTypee){inti=0;wh

6、ile(ilength&&L->data[i]!=e)i++;31if(i>=L->length)return0;elsereturni+1;}intListInsert(SqList*&L,inti,ElemTypee){intj;if(i<1

7、

8、i>L->length+1)return0;i--;//将顺序表位序转化为elem下标*/for(j=L->length;j>i;j--)//将data[i]及后面元素后移一个位置*/L->data[j]=L->data[j-1];L->data[i]=e;L->length++;//顺序表长度

9、增1*/return1;}intListDelete(SqList*&L,inti,ElemType&e){intj;if(i<1

10、

11、i>L->length)return0;i--;//将顺序表位序转化为elem下标*/e=L->data[i];for(j=i;jlength-1;j++)L->data[j]=L->data[j+1];L->length--;return1;}//主函数31voidmain(){ElemTypee;structSqList*L1;structSqList*L2;inti,j;//建立空表L1,L2InitL

12、ist(L1);InitList(L2);//给L1赋值for(j=1;j<=5;j++){ListInsert(L1,1,j);}printf("在L1的表头依次插入5~1后:");for(j=0;j<5;j++)printf("%d",L1->data[j]);printf("");j=0;//逆转L1,并把逆转值给L2for(i=1;i<=5;i++){GetElem(L1,i,e);ListInsert(L2,1,e);}printf("");printf("L1就地逆转结果:");for(j=0;j<5;j++)printf("%

13、d",L2->data[j]);printf("");31printf("");printf("释放顺序表L1");DestroyList(L1);printf("");printf("释放顺序表L2");DestroyList(L2);printf("");}实验结果如下:实验二链表的建立和基本运算一、实验目的1、掌握链表存储结构的定义及C/C++语言实现2、掌握双链表的特点和基本运算及C/C++语言实现3、建立并正反序显示双链表结点数据,并执行结点插入操作二、实验环境31PC微机,Windows,DOS,TurboC或V

14、isualC++三、实验内容2、求集合的并、交和差集(1)问题描述求出任意两个正整数集合的的交、并和差集。实验源程序如下:

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

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

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