南阳理工学院数据结构(C 语言版)上机实验指导书软件学院·软件工程目 录实验 1 线性表应用实验 2 栈和队列的应用........................................................................14实验 3 线性表应用................................................................................27实验 4 图论及其应用............................................................................46 实验 5 查找实验 6 排序............................................................................................64实验 1 线性表应用一、实验目的3,了解和掌握线性表顺序存储和链式存储在计算机中的表示,基本操做在计算机中的实2,能够利用线性表结构对实际问题进行分析建模,利用计算机求解。1,能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其适用场合。二、实验内容及步骤 1、利用程序设计语言分别实现顺序表和链表的抽象数据类型。2、掌握程序分文件(头文件和实现文件)书写的方式。3、分别用顺序表和链表实现课本算法 2.2:合并两个非递减有序序列,并对其时间性能做出分析。三、实验步骤与调试过程 以线性表来描述一元多项式,储存结构采纳单链表,每个结点储存的多项式中某一项的系数和指数,建立单链表时指数高的结点列于指数低的结点之后,即线性表的元素按指数递增有序排列。四、实验结果五、疑难小结 当线性表的长度变化较大,难以估量其存储规模,另外对线性表频繁进行插入和删除操作时,则采纳链表作为存储结构可能会更好一些。在实际应用中应该考虑以下因素:(1)应有利于运算的实现;(2)应有利于数据的特性;(3)应有利于软件环境。六、主要算法和程序清单顺序表的非递减数列合并#include/*包含输入输出头文件*/#define ListSize 100typedef int DataType;typedef struct{DataType list[ListSize];int length;}SeqList;void InitList(SeqList *L) /*将线性表初始化为空的线性表只需要把线性表的长度 length 置为 0*/{L->length=0; /*把线性表的长度置为 0*/}int ListEmpty(SeqList L) /*推断线性表是否为空,线性表为空返回 1,否则返回 0*/{ if(L.length==0)/*推断线性表的长度是否为 9*/ return 1;/*当线性表为空时,返回 1;否则返回 0*/ else return 0;}int GetElem(SeqList L,int i,DataType *e) /*查找线性表中第 i...