《数据结构》实验指导书.doc

《数据结构》实验指导书.doc

ID:51818550

大小:320.85 KB

页数:35页

时间:2020-03-16

《数据结构》实验指导书.doc_第1页
《数据结构》实验指导书.doc_第2页
《数据结构》实验指导书.doc_第3页
《数据结构》实验指导书.doc_第4页
《数据结构》实验指导书.doc_第5页
资源描述:

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

1、数据结构实验指导书实验一线性表[实验目的]1.了解顺序表的结构特点及有关概念,掌握顺序表建立、插入、删除的基本操作算法。2.了解单链表的结构特点及有关概念,掌握单链表建立、插入、删除的基本操作算法。[实验内容]1.顺序表的实践。1)建立4个元素的顺序表list[]={2,3,4,5},实现顺序表建立的基本操作。2)在list[]={2,3,4,5}的元素4和5之间插入一个元素9,实现顺序表插入的基本操作。3)在list[]={2,3,4,9,5}中删除指定位置(i=3)上的元素9,实现顺序表的删除的基本操作。2.单链表的实践。1)建立一个包括头

2、结点和3个结点的(4,2,1)的单链表,实现单链表建立的基本操作。2)在已建好的单链表中的指定位置(x=2)插入一个结点3,实现单链表插入的基本操作。3)在一个包括头结点和4个结点的(4,2,3,1)的单链表的指定位置删除一个结点,实现单链表删除的基本操作。[实验要点及说明]线性表(linearlist)是n(n≥0)个数据元素a1,a2,…an组成的有限序列。其中n称为数据元素的个数或线性表的长度,当n=0时称为空表,n>0时称为非空表。通常将非空的线性表记为(a1,a2,…,an),其中的数据元素ai(1≤i≤n)是一个抽象的符号,ai是第

3、i个数据元素,称i为数据元素ai在线性表中的位置。其具体含义在不同情况下是不同的,即它的数据类型可以根据具体情况而定,本书中,我们将它的类型设定为elemtype,表示某一种具体的已知数据类型。顺序表也称为线性表的顺序存储结构。其存储方式为:在内存中用一组地址连续的存储单元依次存储线性表的数据元素,但该连续存储空间的大小要大于或等于顺序表的长度。一般让线性表中第一个元素存放在连续存储空间第一个位置,第二个元素紧跟着第一个之后,其余依此类推。可定义顺序表如下:#definemaxnumelemtypelist[maxnum];intnum=-1;

4、线性表的链式存贮结构,也称为链表。其存贮方式是:在内存中利用存贮单元(可以不连续)35来存放元素值及它在内存的地址,各个元素的存放顺序及位置都可以以任意顺序进行,原来相邻的元素存放到计算机内存后不一定相邻,从一个元素找下一个元素必须通过地址(指针)才能实现。故不能像顺序表一样可随机访问。常用的链表有单链表、循环链表和双向链表、多重链表等。单链表是线性表的链式存贮结构中每个结点只有一个指针域的链表。可定义单链表的结点结构如下:typedefstructnode{elemtypedata;structnode*next;}slnode;必做顺序表、

5、单链表的建立,选作顺序表、单链表的插入或删除。[参考程序]1.建立顺序表#include#definemax10main(){inti=0,x,*num,ch;intlist[max];printf("inputlist:");while((ch=getchar())!=''){list[i];i++;}*num=i-1;for(i=0;i<=*num;i++)printf("list[%d]=%c",i,list[i]);}2.顺序表插入#include#definemax5#definetrue1#d

6、efinefalse0intinsertq(intlist[],int*num,inti,intx){intj;if((i<0)

7、

8、(i>*num+1)){printf("mistake.");return(false);}if(*num>=max-1){printf("listisfull.");return(false);}for(j=*num+1;j>i;j--)list[j]=list[j-1];list[i]=x;(*num)++;return(true);35}main(){inti=0,x,*num,ch;intlist[max]

9、;printf("inputlist:");while((ch=getchar())!=''){list[i]=ch;i++;}*num=i-1;printf("insertNo.i:");scanf("%d",&i);getchar();printf("insertdata:");x=getchar();getchar();insertq(list,num,i,x);for(i=0;i<=*num;i++)printf("list[%d]=%c",i,list[i]);printf("");}3.单链表插入#include

10、o.h>#definenull0typedefstructnode{intdata;structnode*next;}slnode;void*init

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

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

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