1 目录 实验0 抽象数据类型 ................................................................ 错误!未定义书签。 实验1 线性表的基本操作 ............................................................................................ 2 实验2 栈和队列的基本操作 ................................................ 错误!未定义书签。 实验3 二叉树的基本操作 .................................................... 错误!未定义书签。 实验4 图的基本操作 ............................................................ 错误!未定义书签。 实验5 查找和排序 ................................................................ 错误!未定义书签。 } 3 实验要求 按要求编写实验程序,将实验程序上机调试运行,并提交实验报告。 2 实验1 线性表的基本操作 1 实验目的 (1) 熟练掌握线性表的逻辑特征。 (2)熟练掌握线性表的基本操作在两种存储结构上的实现。 2 实验内容 (1) 设计一个顺序表的基本操作的演示程序 (2) 设计一个单链表的基本操作的演示程序 (3) 设计一个双链表的基本操作的演示程序 【基本要求】 实现下列 4 种基本运算:(1)初始化线性表;(2)在第 I 个元素前插入一个元素 e;(3)删除第 I 个元素;(4)遍历线性表;(5)将单链表逆置 【测试数据】自定 参考程序如下: //顺序表的基本操作 #include //顺序表的定义 #define MAX 15 typedef struct{ int elem[MAX]; int length; }Sqlist; void Initlist_sq(Sqlist &L); void ListInsert_sq(Sqlist &L,int i, int e); void ListDel_sq(Sqlist &L,int i, int &e); void print_sq(Sqlist L); // 函数的定义 void Initlist_sq(Sqlist &L) { L.length =0; } 3 void ListInsert_sq(Sqlist &L,int i, int e) { int *p,*q; if(i<1||i>L.length +1) return; q=&L.elem[i-1]; //插入位置 for(p=&L.elem[L.length -1];p>=q;--p ) *(p+1)=*p; *q=e; ++L.length ; return; } void ListDel_sq(Sqlist &L,int i, int &e) { if(i<1||i>L.length ) return; e=L.elem[i-1]; for(int j=i;j