本科实验报告 课程名称: 数据结构 实验项目:线性结构、树形结构、图结构、查找、排序 实验地点: 逸夫楼 专业班级: 学号: 学生姓名: 指导教师: 张月琴 1 3 年 1 2 月 2 9 日 实验项目(线性结构) 一、实验目的和要求 本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。 二、实验内容和原理 习题 [问题描述] 设顺序表 A 中的数据元素递增有序,试写一程序,将 x 插入到顺序表的适当位置上,使该表仍然有序。 [输入] 顺序表的长度,初始化顺序表数据,插入数据 X。 [输出] 已建立顺序表,输出插入 X 后的顺序表。 [存储结构] 采用顺序存储结构 [算法的基本思想] 建立顺序表(用数组的形式实现)。在表中从后往前查找要插入元素的位置,直到查找到第一个比 X 小的数,并从表的最后一元素依次后移,把要插入元素插入搜查找位置。 三、主要仪器设备 使用的计算机惠普:硬件配置 Win7 四、操作方法与实验步骤 [习题源程序] #include"stdio.h" #define MAXSIZE 100 #define RIGHT 1 #define ERROR 0 typedef int ElemType; typedef struct { ElemType elem[MAXSIZE]; int last; }SeqList; void Initlist(SeqList *L) { L->last=-1; } void putseqList(SeqList *L,int n) { int i; for(i=0;ielem[i])); L->last=L->last+n; } int LenList(SeqList *L) { int Len; Len=L->last+1; return Len; } int PositionList(SeqList *L,int X) { int j; for(j=0;j<=L->last;j++) if(Xelem[j]) return j+1; return (L->last+1); } int InsList(SeqList *L,int i,int e) { int k; if((i<1)||(i>L->last+2)) { printf("the position is wrong"); return(ERROR); } if(L->last>=MAXSIZE-1) { printf("the list is full"); return(ERROR); } for(k=L->last;k>=i-1;k--) L->elem[k+1]=L->elem[k]; L->elem[i-1]=e; L->last++; return(RIGHT); } int OutputSeqList(SeqList *L) { int i; for(i=0;i<=L->last;i++) printf("%d,",L->elem[i]); return(L->elem[i]); } void main() { int s,c; SeqList L; Initlis...