实验一 顺序表 1.目的 (1)掌握线性表的概念。(2)熟练掌握线性表的顺序存储结构。(3)熟练掌握线性表在顺序存储结构上的运算。(4)了解测试思想。 2.实验内容: (1)逆置 内容: 编写算法实现顺序表中元素的逆置。要求按用户输入的数据建立一个顺序表。在逆置过程中使用最少的辅助存储单元。 思路: 创建顺序表后 L1,将顺序表最后一个元素的值放到第一个元素中,倒数第二个元素的值放到第二个元素中........第一个元素的值放到最后一个元素中;因此整个顺序表得知都发生了改变,再输出改变后的顺序表。 模块程序: N-S 流程图: void reverse(sequenlist *L) { int i,j; datatype t; for(i=0,j=L->length-1;idata[i];L->data[i]=L->data[j];L->data[j]=t;} } 测试数据为:10,9,8,7,6,5,4,3,2,1 运行结果: (2)删除多余的元素 内容: 已知顺序表中的元素非递减有序排列,编写算法删除顺序表中之相同的多余的元素。 思路: 顺序表创建后 L2,找出相同的元素,删除其中一个相同元素的结点,后面的结点往前移一位,顺出删除后的顺序表 模块程序: N-S 流程图: void del(sequenlist * L) { int i=0,j=0; for(i=0;ilength-1;i++) { if(L->data[i]==L->data[i+1]) { for(j=i;jlength-1;j++) L->data[j]=L->data[j+1]; L->length--; i=i-1; } } } 测试数据为:1,2,2,3,,5,6,7,7,8,9 运行结果: (3)顺序表的合并 内容: 有两个顺序表A(有m 个元素)和B(有n 个元素),其元素均从小到大升序排列。编写算法,将这两个顺序表合并在一个顺序表C,要求 C 也是从小到大升序排列。 思路: 先创建顺序表L3,L4,把 L3 表中的值一个一个的赋给 L5,L5 的长度等于 L3 的长度加 L4 的长度,找到L5 的现在的等于 L3 最后一个值的后一结点,再把 L4 的值一个一个的赋给 L5 的这一结点,输出顺序表L5。 模块程序: N-S 流程图: void hebing(sequenlist * L3,sequenlist * L4,sequenlist * L5) { int i=0,k=0,j=0; L5->length=L3->length+L4->length; for(i=0,k=0;i<=L3->length-1,k<=L3->length-1;i++,k++) L5->data[k]=L3->data[i]; for(j=0;j<=L4->length-1;j++) { L5->data[k++]=L4->data[j]; } } 测试数据为:表L3(1,3,5,7,9)表L4(2,4,6,8,10) 运行结果: (4)插入元素 内容:...