百度文库- 让每个人平等地提升自我11 姓名学号实验项目线性表及其应用(I )实验内容1.实现线性表的顺序存储结构和主要的基本操作,并添加输出显示等辅助函数,在此基础上实现后续两个算法。线性表的抽象数据类型定义参见教材第19 页。顺序存储结构的定义参见教材第22 页。2.设线性表存放于顺序表A 中,其中有n 个元素,且递增有序,请设计一算法,将x 插入到线性表的适当位置,以保持线性表的有序性。(题集第 17 页)3.试写一算法, 实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,⋯,an)逆置为( an, an-1,⋯,a1)。(题集第 18 页)算法设计与程序实现:算法分析本次实验的目的是理解和掌握线性表顺序存储结构的用法,要解决两个基本问题一是将元素插入到有序的顺序表中,并保持线性表的有序性;二是实现顺序表的就地逆置。 首先需插入元素的顺序表是有序的,故需先将输入的线性表元素进行排序,至于数据排序,我选择的是起泡排序算法,而实现插入元素到顺序表,则是将待插入的元素与已排序的顺序表中的每个元素进行比较进而确定插入位置;实验内容二的就地逆置则仅仅只需用一个for 循环将顺序表中对称位置处的元素交换即可。程序设计流程图如下所示:百度文库- 让每个人平等地提升自我22 开始调用 InitList_Sq(SqList &L)函数实现顺序表初始化输入所需建立的顺序表的表长LIST_MAX向线性表中录入数据输入选择顺序表的排序方式DIR调用函数BubbleSortList_Sq(SqList &L,Status direction)排序调用 PrintfList_Sq(Sqlist &L)函数输出顺序表到控制台输入需插入的元素data调用有序插入函数InsertSequentList_Sq(SqList &L, ElemType e)插入数据 data调用 PrintfList_Sq(Sqlist &L)函数输出顺序表到控制台调用 InverseLIst_Sq(SqList &L) 函数对顺序表进行就地逆置调用 PrintfList_Sq(Sqlist &L)函数输出顺序表到控制台结束核心程序此程序中用到的自己编写的头文件以在下面给出,而头文件的说明则在主函数中文件包含部分的注释处,核心程序如下:1.主函数如下:#include""请输入所需建立的线性表的长度:" ); scanf_s( "%d", &LIST_MAX); printf("※2. 请录入数据: "); for (i = 0; i