文档介绍:华北水利水电大学数据结构实验报告 2016~ 2017学年第二学期 201 6级计算机科学与技术(专升本) 专业班级: 计科 2016223 学号: 201622301 姓名: 孔芬实验一线性表及其应用一、实验目的: 1 .掌握用 C 语言调试程序的基本方法。 2 .掌握线性表的基本运算,如插入、删除等。二、实验内容: 1. 编写一个程序,实现顺序表的各种基本运算,在此基础上完成如下功能: (1) 初始化顺序表 L。(2) 依次在顺序表 L 中插入元素 a、b、c、e。(3) 输出顺序表 L。(4) 输出顺序表 L 的长度。(5) 输出顺序表 L 的第 3 个元素。(6) 输出元素 a 的位置。(7) 在第 4 个元素之前插入元素 f。(8) 输出顺序表 L。(9) 删除第 3 个元素。( 10) 输出顺序表 L。 2 .设带头结点的单链表 ha和 hb 中结点数据域值按从小到大顺序排列,且各自链表内无重复的结点, 要求: (1 )建立两个单链表 ha和 hb ,要求 ha和 hb 都是递增有序的。(2 )将单链表 ha 合并到单链表 hb 中,且归并后的 hb 链表内无重复的结点,结点值仍保持从小到大顺序排列。(3 )输出合并后单链表 hb 中每个结点的数据域值。三、实验要求: 完成算法设计和程序设计并上机调试通过。 2. 撰写实验报告,提供实验结果和数据。 3. 写出算法设计小结和心得。四、程序源代码: 第一题代码: #include"" #include"" #define MaxSize 50 typedef struct{ char data[MaxSize]; int length; }SqList; void InitList(SqList *&L) {L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DispList(SqList *L) {int i; for(i=0;i<L->length;i++) printf("%c",L->data[i]); printf("\n"); }int ListLength(SqList *L) {return(L->length); }bool ListEmpty(SqList *L) {return(L->length==0); }bool getelem(SqList *L,int i) {if(i<1||i>L->length) return false; else {printf("%c",L->data[i]); return true; }}int LocateElem(SqList *L,char m) {int i=0; while(i<L->length&&L->data[i]!=m) i++; if(i>=L->length) return 0; else return i+1; }bool ListInsert(SqList *&L,int i,char m) {int j; if(i<1||i>L->length+1) return false; i--; for(j=L->length;j>i;j--) L->data[j]=L->dat