数据结构实验一线性表及其应用.doc

数据结构实验一线性表及其应用.doc

ID:53701495

大小:33.06 KB

页数:10页

时间:2020-04-06

数据结构实验一线性表及其应用.doc_第1页
数据结构实验一线性表及其应用.doc_第2页
数据结构实验一线性表及其应用.doc_第3页
数据结构实验一线性表及其应用.doc_第4页
数据结构实验一线性表及其应用.doc_第5页
资源描述:

《数据结构实验一线性表及其应用.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验一线性表及其应用一、实验目的1.熟悉C语言的上机环境,进一步掌握C语言的结构特点。2.掌握线性表的顺序存储结构的定义及C语言实现。3.掌握线性表的链式存储结构——单链表的定义及C语言实现。4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。5.掌握线性表在链式存储结构——单链表中的各种基本操作。二、实验内容1.顺序线性表的建立、插入及删除。2.链式线性表的建立、插入及删除。三、实验步骤1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元

2、素68。3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。四、实现提示1.由于C语言的数组类型也有随机存取的特点,一维数组的机内表示就是顺序结构。因此,可用C语言的一维数组实现线性表的顺序存储。在此,我们利用C语言的结构体类型定义顺序表:#defineMAXSIZE 1024typedef int elemtype;   /* 线性表中存放整型元素 */typedefstruct{elemtypevec[MAXSIZE]; intlen;            /* 顺序表的长度 */ }sequenlist;

3、将此结构定义放在一个头文件sqlist.h里,可避免在后面的参考程序中代码重复书写,另外在该头文件里给出顺序表的建立及常量的定义。2.注意如何取到第i个元素,在插入过程中注意溢出情况以及数组的下标与位序(顺序表中元素的次序)的区别。3.单链表的结点结构除数据域外,还含有一个指针域。用C语言描述结点结构如下:   typedefintelemtype;typedefstructnode   {elemtypedata;  //数据域     structnode*next;//指针域    }linklist;   注意结点的建立方法及构造新结点时指针的变化。构

4、造一个结点需用到C语言的标准函数malloc(),如给指针变量p分配一个结点的地址:p=(linklist*)malloc(sizeof(linklist));该语句的功能是申请分配一个类型为linklist的结点的地址空间,并将首地址存入指针变量p中。当结点不需要时可以用标准函数free(p)释放结点存储空间,这时p为空值(NULL)。五、思考与提高1.如果按由表尾至表头的次序输入数据元素,应如何建立顺序表。2.在main函数里如果去掉L=&a语句,会出现什么结果?六、完整参考程序1.顺序线性表的建立、插入及删除。#include#incl

5、ude#defineMAX30//定义线性表的最大长度enumBOOL{False,True};//定义BOOL型typedefstruct{charelem[MAX];//线性表intlast;//last指示当前线性表的长度}sqlist;voidinitial(sqlist&);//初始化线性表BOOLinsert(sqlist&,int,char);//在线性表中插入元素BOOLdel(sqlist&,int,char&);//在线性表中删除元素intlocate(sqlist,char);//在线性表中定位元素voidprint(s

6、qlist);//显示线性表中所有元素voidmain(){sqlistS;//S为一线性表intloc,flag=1;charj,ch;BOOLtemp;printf("本程序用来实现顺序结构的线性表。");printf("可以实现查找、插入、删除等操作。");initial(S);//初始化线性表while(flag){printf("请选择:");printf("1.显示所有元素");printf("2.插入一个元素");printf("3.删除一个元素");printf("4.查找一个元素");printf("5.退出程序

7、n");scanf("%c",&j);switch(j){case'1':print(S);break;//显示所有元素case'2':{printf("请输入要插入的元素(一个字符)和插入位置:");printf("格式:字符,位置;例如:a,2");scanf("%c,%d",&ch,&loc);//输入要插入的元素和插入的位置temp=insert(S,loc,ch);//插入if(temp==False)printf("插入失败!");//插入失败else{printf("插入成功!");print(S);}//插入成功break;}c

8、ase'3':{printf("请输入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。