金陵科技学院实验报告 学 生 实 验 报 告 册 课程名称:算法与数据结构 金陵科技学院实验报告 实验项目名称: 顺序表 实验学时: 2 同组学生姓名: 实验地点: 工科楼 A205 实验日期: 2013 年 10 月 16 日 实验成绩: 批改教师: 批改时间: 金陵科技学院实验报告 实验1 顺序表 一、实验目的和要求 掌握顺序表的定位、插入、删除等操作。 二、实验仪器和设备 Turbo C 2.0 三、实验内容与过程(含程序清单及流程图) 1、必做题 (1) 编写程序建立一个顺序表,并逐个输出顺序表中所有数据元素的值。编写主函数测试结果。 (2) 编写顺序表定位操作子函数,在顺序表中查找是否存在数据元素 x。如果存在,返回顺序表中和 x 值相等的第 1 个数据元素的序号(序号从 0 开始编号);如果不存在,返回-1。编写主函数测试结果。 (3) 在递增有序的顺序表中插入一个新结点 x,保持顺序表的有序性。 解题思路:首先查找插入的位置,再移位,最后进行插入操作;从第一个元素开始找到第一个大于该新结点值 x 的元素位置 i 即为插入位置;然后将从表尾开始依次将元素后移一个位置直至元素 i;最后将新结点 x 插入到 i 位置。 (4) 删除顺序表中所有等于 X 的数据元素。 2、选做题 (5) 已知两个顺序表A 和 B 按元素值递增有序排列,要求写一算法实现将A 和 B 归并成一个按元素值递减有序排列的顺序表(允许表中含有值相同的元素)。 程序清单: 1、#define maxsize 100 typedef struct{ int data[maxsize]; int last; }sequenlist; main() { int i; sequenlist l={{2,5,6,8,2,8,4,3},7}; printf("\nThe list is:"); 金陵科技学院实验报告 for(i=0;i<=l.last;i++) printf("%2d",l.data[i]); } 2、#define maxsize 100 typedef struct{ int data[maxsize]; int last; }sequenlist; main() { int x,i,s=-1; sequenlist l={{2,5,6,7,9,8,4,3},7}; printf("\nThe list is:"); for(i=0;i<=l.last;i++) printf("%2d",l.data[i]); printf("\nPlease input the number :"); scanf("%d",&x); for(i=0;i<=l.last;i++) if(l.data[i]==x) {s=i;break; } printf("%d",s); } 3、#define maxsize 100 typedef struct{ int data[maxsize]; int last; }sequenlist; main() { int i,x,j; sequenlist l={{1,3,5,6,7,9},...