实验一线性表及其应用一、实验目得1、熟悉C语言得上机环境,进一步掌握C语言得结构特点。2、掌握线性表得顺序存储结构得定义及C语言实现。3、掌握线性表得链式存储结构--单链表得定义及C语言实现。4、、掌握线性表在链式存储结构——单链表中得各种基本操作。二、实验内容 1、顺序线性表得建立、插入及删除。 2、链式线性表得建立、插入及删除。三、实验步骤1、建立含n个数据元素得顺序表并输出该表中各元素得值及顺序表得长度。2、利用前面得实验先建立一个顺序表L={21,23,14,5,56,17,31},、建立一个带头结点得单链表,结点得值域为整型数据。要求将用户输入得数据按尾插入法来建立相应单链表。四、实现提示1、由于C语言得数组类型也有随机存取得特点,一维数组得机内表示就就是顺序结构。因此,,我们利用C语言得结构体类型定义顺序表:#defineMAXSIZE 1024typedef int elemtype; /* 线性表中存放整型元素 */typedef struct{ elemtypevec[MAXSIZE]; intlen; /* 顺序表得长度 */ }sequenlist;将此结构定义放在一个头文件sqlist、h里,可避免在后面得参考程序中代码重复书写,、注意如何取到第i个元素,在插入过程中注意溢出情况以及数组得下标与位序(顺序表中元素得次序)得区别。3、单链表得结点结构除数据域外,: typedef intelemtype;typedefstructnode {elemtypedata; //数据域 structnode*next;//指针域 }linklist; 注意结点得建立方法及构造新结点时指针得变化。构造一个结点需用到C语言得标准函数malloc(),如给指针变量p分配一个结点得地址:p=(linklist *)malloc(sizeof(linklist));该语句得功能就是申请分配一个类型为linklist得结点得地址空间,并将首地址存入指针变量p (p)释放结点存储空间,这时p为空值(NULL)。五、思考与提高1、如果按由表尾至表头得次序输入数据元素,、在main函数里如果去掉L=&a语句,会出现什么结果?六、完整参考程序 1、顺序线性表得建立、插入及删除。#include<stdio、h>#include〈conio、h>#defineMAX30//定义线性表得最大长度enumBOOL{False,True}; //定义BOOL型typedefstruct{ charelem[MAX]; //线性表 intlast; //last指示当前线性表得长度}sqlist;voidinitial(sqlist&); //初始化线性表BOOLinsert(sqlist&,int,char);//在线性表中插入元素BOOLdel(sqlist&,int,char&);//在线性表中删除元素int locate
《数据结构》实验一 线性表及其应用 来自淘豆网m.daumloan.com转载请标明出处.