实验一 顺序表 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 个元素),其元素均从小到大升序排