资源描述:
《数据结构实验源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构实验报告实验一线性表的建立及基本操作方法实现姓名:吴波学号:20115844班级:计科2011-01设计时间:15/42013ALGO2-1(1)编写一个程序ALGO2-1.CPP,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化顺序表L;(2)依次采用尾插法插入a,b,c,d,e(3)输出顺序表L;(4)输出顺序表L长度;(5)判断顺序表L是否为空;(6)判断顺序表L的第3个元素;(7)输出元素‘a’的位置;(8)在第4个元素位置上插入‘f’元素;(9)输出顺序表L;(10)删除L的第3个元素;
2、(11)输出顺序表L;(12)释放顺序表L;源代码#include#include#defineMaxsize10typedefcharElemType;typedefstruct//定义顺序表结构{ElemTypech[Maxsize];intlength;}Sqlist;voidInitlist(Sqlist*&L)//初始化顺序表函数{L=(Sqlist*)malloc(sizeof(Sqlist));L->length=0;}boolListinsert(Sqlist*L,inti,Ele
3、mTypee)//插入元素函数{intj;if(i<1
4、
5、i>L->length+1)returnfalse;i--;//逻辑号与物理内存的转换for(j=L->length;j>i;j--)L->ch[j]=L->ch[j-1];L->ch[i]=e;L->length++;returntrue;}voidDisplist(Sqlist*L)//输出顺序结构函数{inti;for(i=0;i<=L->length;i++)printf("%ct",L->ch[i]);printf("");}intListlength(Sqli
6、st*L)//计算顺序表长度函数{returnL->length;}boolListempty(Sqlist*L)//判空函数{return(L->length==0);}boolGetelem(Sqlist*L,inti,ElemType&e)//从顺序表中取元素函数{if(i<1
7、
8、i>L->length)returnfalse;e=L->ch[i-1];returntrue;}intLocate(Sqlist*&L,ElemType&e)//在顺序表中寻找元素函数{inti=0;while(e!=L->ch[i])i++;if(
9、i>L->length)return0;elsereturni+1;}boolListdelete(Sqlist*&L,inti)//删除元素函数{intj;if(i<1
10、
11、i>L->length)returnfalse;i--;for(j=i;jlength;j++)L->ch[j]=L->ch[j+1];L->length--;returntrue;}voidDestroylist(Sqlist*&L)//销毁线性表函数{free(L);}///////////////////////主函数////////////////
12、////////intmain(void)//主函数!{inti;Sqlist*L;//定义一个顺序结构指针ElemTypee;printf("(1)初始化顺序表L");Initlist(L);//初始化顺序结构printf("(2)依次采用尾插法插入a,b,c,d,e元素");Listinsert(L,1,'a');//Listinsert(L,2,'b');//依次插入元素Listinsert(L,3,'c');//Listinsert(L,4,'d');//Listinsert(L,5,'e');//printf("(3
13、)输出线性表L:tt");Displist(L);printf("(4)顺序表的长度是:t%d",Listlength(L));printf("(5)顺序表是否为空:t%d",Listempty(L));Getelem(L,3,e);//判断第三个元素printf("(6)L中的第三个元素是:t%c",e);e='a';printf("(7)L中'a'的位置是:t%d",Locate(L,e));//输出‘a’在顺序表中的位置printf("(8)在第四各位置插入元素");Listinsert(L,4,
14、'f');//插入元素‘f’;printf("(9)输出线性表L:tt");Displist(L);printf("(10)删除L的第3个元素");Listdelete(L,3);printf("(11)输出线性