欢迎来到天天文库
浏览记录
ID:33524432
大小:78.50 KB
页数:13页
时间:2019-02-26
《数据结构域算法设计-实验一 线性表的基本操作实现及其应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一线性表的基本操作实现及其应用一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。二、实验内容√1、单链表的表示与操作实现(*)2、约瑟夫环问题3、Dr.Kong的艺术品三、实验要求1、按照数据结构实验任务书,提前做好实验预习与准备工作。2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。3、严格按照数据结构实验报告模板和规范,及时完成实验报告。四、实验步骤(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主
2、程序的流程以及每个操作(函数)的伪码算法、函数实现、程序编码、调试与分析。附流程图与主要代码)㈠、数据结构与核心算法的设计描述(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)1、单链表的最大长度#defineMAXSIZE1002、单链表的结点类型定义/*定义elemtype为int类型*/typedefintelemtype;/*单链表的结点类型*/typedefstructSTD{elemtypeelem;STD*next;}list,*linklist;3、初始化单链表/*函数功能:对链表进行初始化参数:链表(linklistL
3、)成功初始化返回1,否则返回0*/intinit(linklist&L){L=(linklist)malloc(sizeof(list));//头结点申请内存。if(!L)//判断有无申请到空间。return0;//没有申请到内存,参数失败返回0L->next=NULL;L->elem=0;//单链表中有多少元素return1;//成功参数返回1}4、清空单链表/*函数功能:把链表清空参数:链表(linklistL)成功清空链表返回1*/intmakeempty(linklist&L){linklistp,q;p=L->next;while(p)/
4、/当p非空时,删除p{q=p;p=p->next;free(q);}L->next=NULL;//只剩头指针,所以L->next=NULLL->elem=0;//清空后链表中元素为0return1;//清空后返回1}5、求链表长度/*函数功能:返回链表的长度参数;链表(linklistL)函数返回链表的长度*/intgetlength(linklistL){linklistp;p=L->next;intj=0;while(p){j++;//统计链表中元素p=p->next;}returnj;//最后返回链表长度.}6、判断链表是否为空/*函数功能:
5、判断链表是否为空参数;链表(linklistL)链表为空时返回0,不为空返回1*/intisempty(linklistL){if(L->next)//头结点后有元素表示链表不空则返回1return1;elsereturn0;//头结点后没有元素表示链表不空则返回0}7、检查链表是否为满/*函数功能:判断链表是否为满参数;链表(linklistL)链表为满时返回0,不为满返回1*/intisfull(linklistL){if(L->elem<=MAXSIZE)//头结点的elem储存的为链表的长度。return1;//其小于MAXSIZE表示链表
6、不满elsereturn0;//否则返回0}8、遍历链表/*函数功能:遍历链表,输出每个节点的elem值参数;链表(linklistL)通过循环逐个输出节点的elem值*/voidshow(linklistL){linklistp;p=L->next;if(isempty(L)==0)//当链表为空时则输出链表为空{cout<<"链表为空!";}while(p)//当链表为不空时则输出链表每个节点的elem值{cout<elem<<"";p=p->next;}cout<7、参数;链表(linklistL),给定元素(inti)如果链表中有给定元素(i)则返回1,否则返回0*/intfind(linklistL,inti){linklistp;p=L->next;while(p){if(p->elem==i)//判断有无元素I,有返回1return1;p=p->next;}return0;//没有找到返回0}10、从链表中查找与给定元素值相同的元素在表中的位置/*函数功能:从链表中查找给定元素的位置参数;链表(linklistL),给定元素(inti)如果链表中有给定元素i则返回元素的位置,没有则返回0*/intloc8、ation(linklistL,inti){linklistp;intj=0;p=L->next;while(p){j++
7、参数;链表(linklistL),给定元素(inti)如果链表中有给定元素(i)则返回1,否则返回0*/intfind(linklistL,inti){linklistp;p=L->next;while(p){if(p->elem==i)//判断有无元素I,有返回1return1;p=p->next;}return0;//没有找到返回0}10、从链表中查找与给定元素值相同的元素在表中的位置/*函数功能:从链表中查找给定元素的位置参数;链表(linklistL),给定元素(inti)如果链表中有给定元素i则返回元素的位置,没有则返回0*/intloc
8、ation(linklistL,inti){linklistp;intj=0;p=L->next;while(p){j++
此文档下载收益归作者所有