数据结构线性表实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的和要求
(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如下:
设计如下exp2-1.cpp主程序:
程序执行结果如下:
实验2.2
程序algo2-2.cpp如下:
设计如下exp2-2.cpp主程序:
程序执行结果如下:
实验2.3
程序algo2-2.cpp如下:
设计exp2-3.cpp主程序:
程序执行结果如下:
四、实验结果分析
实验1.1 对于prime(n),其时间复杂度为O(n),由于偶数不可能是素数,所以程序中只对奇数进行
素数的判断。因此,上述程序的时间复杂度较低。
实验1.2 func(n)的时间复杂度为O(len(n)),len(n)为正整数n的位数。程序的时间复杂度也为O(len(n))。实验1.3 在func(s)算法中,for循环语句的执行次数为n/2(n为字符串s的长度),则它的时间复杂度为O(n)。程序的时间复杂度也为O(n)。