数据结构线性表实验报告.docx
- 文档编号:10615613
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:22
- 大小:210.54KB
数据结构线性表实验报告.docx
《数据结构线性表实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构线性表实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
数据结构线性表实验报告
一、实验目的和要求
(1)理解线性表的逻辑结构特性。
(2)深入掌握线性表的两种存储方法,即顺序表和链表。
体会这两种存储结构之间的差异。
(3)重点掌握顺序表和链表上各种基本运算的实现。
(4)综合运用线性表解决一些复杂的实际问题。
二、实验内容
实验2.1编写一个程序algo2-1.cpp,实现顺序表的各种基本运算(假设顺序表的元素类型为char),并在此基础上设计一个程序exp2-1.cpp,完成如下功能:
(1)初始化顺序表L;
(2)采用尾插法依次插入元素a,b,c,d,e;
(3)输出顺序表L;
(4)输出顺序表L长度;
(5)判断顺序表L是否为空;
(6)输出顺序表L的第三个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入元素f;
(9)输出顺序表L;
(10)删除L的第3个元素;
(11)输出顺序表L;
(12)释放顺序表L。
实验2.2编写一个程序algo2-2.cpp,实现单链表的各种基本运算(假设单链表的元素类型为char),并在此基础上设计一个程序exp2-2.cpp,完成如下功能:
(1)初始化单链表h;
(2)采用尾插法依次插入元素a,b,c,d,e;
(3)输出单链表h;
(4)输出单链表h长度;
(5)判断单链表h是否为空;
(6)输出单链表h的第三个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入元素f;
(9)输出单链表h;
(10)删除L的第3个元素;
(11)输出单链表h;、
(12)释放单链表h。
释放顺序表L。
实验2.3编写一个程序algo2-3.cpp,实现双链表的各种基本运算(假设双链表的元素类型为char),并在此基础上设计一个程序exp2-3.cpp,完成如下功能:
(1)初始化双链表h;
(2)采用尾插法依次插入元素a,b,c,d,e;
(3)输出双链表h;
(4)输出双链表h长度;
(5)判断双链表h是否为空;
(6)输出双链表h的第三个元素;
(7)输出元素a的位置;
(8)在第4个元素位置上插入元素f;
(9)输出双链表h;
(10)删除L的第3个元素;
(11)输出双链表h;、
(12)释放双链表h。
三、实验过程描述
实验2.1
程序algo2-1.cpp如下:
#include
#include
#defineMaxSize100
typedef
char
ElemType;
typedef
struct
{
ElemTypedata[MaxSize];
inlength;
}
SqList;
voidint(SqList*&L)
{
L=(SqLIST*&L)
{
L=(SqList*)maiioc(sizeofSqList))
L->length=0;
}
voidCreateList(SqList*&L,Elemtypesource[],intn)
{
inti;
for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for(i=0;i printf("%c\t",L->data[i]; } printf("\n"); } voidmain() { SqLi\list*h; chara[]={,'a','b'.'c','d','e'}; Init(h); printf("beforeCreatelength=%d\n",h->length); CreateList(h,a,s); DisplayList(h); printf("afterCreateLength=%d\n: h->length); } #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for(i=0;i printf("%c\t",L->data[i]; } printf("\n"); } voidmain() { SqLi\list*h; chara[]={,'a','b'.'c','d','e'}; Init(h); printf("beforeCreatelength=%d\n",h->length); CreateList(h,a,s); DisplayList(h); printf("afterCreateLength=%d\n: h->length); } 设计如下exp2-1.cpp主程序: #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for(i=0;i printf("%c\t",L->data[i]; } printf("\n"); } voidmain() { SqLi\list*h; chara[]={,'a','b'.'c','d','e'}; Init(h); printf("beforeCreatelength=%d\n",h->length); CreateList(h,a,s); DisplayList(h); printf("afterCreateLength=%d\n: h->length); } #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for(i=0;i printf("%c\t",L->data[i]; } printf("\n"); } voidmain() { SqLi\list*h; chara[]={,'a','b'.'c','d','e'}; Init(h); printf("beforeCreatelength=%d\n",h->length); CreateList(h,a,s); DisplayList(h); printf("afterCreateLength=%d\n: h->length); } 程序执行结果如下: 实验2.2 程序algo2-2.cpp如下: #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( 设计如下exp2-2.cpp主程序: #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( #include #include #defineMaxSize100 typedef char ElemType; typedef struct { ElemTypedata[MaxSize]; inlength; } SqList; voidint(SqList*&L) { L=(SqLIST*&L) { L=(SqList*)maiioc(sizeofSqList)) L->length=0; } voidCreateList(SqList*&L,Elemtypesource[],intn) { inti; for(i=0;i { L_>data[i]=source[i]; } L-ength=n; } voidDisplayList(SqList*L) { inti; for( 程序执行结果如下: 实验2.3 程序algo2-2.cpp如下: 设计exp2-3.cpp主程序: 程序执行结果如下: 四、实验结果分析 实验1.1对于prime(n),其时间复杂度为O( ),由于偶数不可能是素数,所以程序中只对奇数进行素数的判断。 因此,上述程序的时间复杂度较低。 实验1.2func(n)的时间复杂度为O(len(n)),len(n)为正整数n的位数。 程序的时间复杂度也为O(len(n))。 实验1.3在func(s)算法中,for循环语句的执行次数为n/2(n为字符串s的长度),则它的时间复杂度为O(n)。 程序的时间复杂度也为O(n)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性 实验 报告