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

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

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一线性表的基本操作实现及其应用实验一线性表的基本操作实现及其应用

实验一 线性表的基本操作实现及其应用 一、实验目的 1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。 2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。 二、实验内容 √ 1、单链表的表示与操作实现 ( * ) 2、约瑟夫环问题 3、Dr.Kong的艺术品 三、实验要求 1、按照数据结构实验任务书,提前做好实验预习与准备工作。 2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。 3、严格按照数据结构实验报告模板和规范,及时完成实验报告。 四、实验步骤 (说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(函数)的伪码算法、函数实现、程序编码、调试与分析。 附流程图与主要代码) ㈠、数据结构与核心算法的设计描述 (程序中每个模块或函数应加注释,说明函数功能、入口及出口参数) 1、单链表的最大长度 #define MAXSIZE 100 2、单链表的结点类型定义 /* 定义elemtype为int类型 */ typedef int elemtype; /* 单链表的结点类型 */ typedef struct STD { elemtype elem; STD *next; }list, * linklist; 3、初始化单链表 /* 函数功能:对链表进行初始化 参数:链表(linklist L) 成功初始化返回1,否则返回0 */ int init(linklist L) { L=(linklist)malloc(sizeof(list));//头结点申请内存。 if(!L) //判断有无申请到空间。 return 0; //没有申请到内存,参数失败返回0 L-next=NULL; L-elem=0; //单链表中有多少元素 return 1; //成功参数返回1 } 4、清空单链表 /* 函数功能:把链表清空 参数:链表(linklist L) 成功清空链表返回1 */ int makeempty(linklist L) { linklist p,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 return 1; //清空后返回1 } 5、求链表长度 /* 函数功能:返回链表的长度 参数;链表(linklist L) 函数返回链表的长度 */ int getlength(linklist L) { linklist p; p=L-next; int j=0; while(p) { j++; //统计链表中元素 p=p-next; } return j; //最后返回链表长度. } 6、判断链表是否为空 /* 函数功能:判断链表是否为空 参数;链表(linklist L) 链表为空时返回0,不为空返回1 */ int isempty(linklist L) { if(L-next) //头结点后有元素表示链表不空则返回1 return 1; else return 0; //头结点后没有元素表示链表不空则返回0 } 7、检查链表是否为满 /* 函数功能:判断链表是否为满 参数;链表(linklist L) 链表为满时返回0,不为满返回1 */ int isfull(linklist L) { if(L-elem = MAXSIZE) //头结点的elem储存的为链表的长度。 return 1; //其小于MAXSIZE表示链表不满 else return 0; //否则返回0 } 8、遍历链表 /* 函数功能:遍历链表,输出每个节点的elem值 参数;链表(linklist L) 通过循环逐个输出节点的elem值 */ void show(linklist L) {

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档