1 / 24
文档名称:

实验一线性表地基本操作实现及其应用.doc

格式:doc   大小:26KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验一线性表地基本操作实现及其应用.doc

上传人:511709291 2019/11/30 文件大小:26 KB

下载得到文件列表

实验一线性表地基本操作实现及其应用.doc

文档介绍

文档介绍:实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现。2、会用线性链表解决简单的实际问题。二、实验内容题目一链表基本操作该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示:pleaseinputtheoperation:(设为输出元素)。。。。。实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现。2、会用线性链表解决简单的实际问题。二、实验内容题目一链表基本操作该程序的功能是实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义和主函数。其中,程序中的单链表(带头结点)结点为结构类型,结点值为整型。单链表操作的选择以菜单形式出现,如下所示:pleaseinputtheoperation:(设为输出元素)。。。。。题目一链表基本操作一、数据结构与核心算法的设计描述1、单链表的最大长度#defineMAXSIZE1002、单链表的结点类型定义/*定义elemtype为int类型*/typedefintelemtype; /*单链表的结点类型*/typedefstructSTD{ elemtypeelem; STD*next;}list,*linklist;3、初始化单链表 /*函数功能:对链表进行初始化参数:链表(linklistL)成功初始化返回1,否则返回0*/ intinit(linklist&L){ L=(linklist)malloc(sizeof(list));//头结点申请内存。 if(!L)//判断有无申请到空间。 return0;//没有申请到内存,参数失败返回0 L->next=NULL; L->elem=0;//单链表中有多少元素 return1;//成功参数返回1}4、清空单链表 /* 函数功能:把链表清空参数:链表(linklistL)成功清空链表返回1*/intmakeempty(linklist&L){ linklistp,q; p=L->next; while(p)//当p非空时,删除p { q=p; p=p->next; free(q); } L->next=NULL;//只剩头指针,所以L->next=NULL L->elem=0;//清空后链表中元素为0 return1;//清空后返回1}5、求链表长度 /*函数功能:返回链表的长度参数;链表(linklistL)函数返回链表的长度*/intgetlength(linklistL){ linklistp; p=L->next; intj=0; while(p) { j++;//统计链表中元素 p=p->next; } returnj;//最后返回链表长度.}6、判断链表是否为空/*函数功能:判断链表是否为空参数;链表(linklistL)链表为空时返回0,不为空返回1*/intisempty(linklistL){ if(L->next)//头结点后有元素表示链表不空则返回1 return1; else return0;//头结点后没有元素表示链表不空则返回0}7、检查链表是否为满/*函数功能:判断链表是否为满参数;链表(linklistL)链表为满时返回0,不为满返回1*/intisfull(linklistL){ if(L->elem<=MAXSIZE)//头结点的elem储存的为链表的长度。 return1;//其小于MAXSIZE表示链表不满 else return0;//否则返回0}8、遍历链表/*函数功能:遍历链表,输出每个节点的elem值参数;链表(linklistL)通过循环逐个输出节点的elem值*/voidshow(linklistL){ linklistp; p=L->next; if(isempty(L)==0)//当链表为空时则输出链表为空 { cout<<"链表为空!"; } while(p)//当链表为不空时则输出链表每个节点的elem值 { cout<<p->elem<<""; p=p->next; } cout<<endl;}9、从链表中查