实验一单链表结构及运算.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一单链表结构及运算

实验一 单链表结构及运算 一、实验目的 理解线性表的概念 了解线性表的几种逻辑结构 掌握线性表在顺序存储下的插入与删除运算 二、实验原理 线性表 在数据处理中,大量数据均以表格形式出现,称为线性表,它是一种最简单也是最常见的数据结构。线性表有两种存储结构——向量和链表。 线性表是数据元素的有限序列。 线性表的结构特点是:数据元素之间是线性关系,线性表中存在唯一的“第一个元素”(表头),必存在一个唯一的“最后一个元素”(表尾)。除第一个元素外,每个元素有且只有一个前趋元素,除最后一个元素外,每个元素有且只有一个后续元素。 线性表的运算 插入 在两个确定元素之间插入一个新元素 删除 删除线性表中某一个元素 查找 按某种要求查找线性表中的一个元素 排序 按给定要求对表中元素重新排序 三、实验内容: 1、定义一个有序线性表,容量自由设定,初始时为空,陆续取若干数据插入线性表中,在每次插入后线性表保持有序性;删除线性表中若干数据线性表保持有序性。(一维数组) 2、设计一个通讯录(姓名、电话号码、年龄)用线性链表实现,完成的功能是,增加、删除、显示、退出等功能。(指针) 四、方法说明: 数组实现(插入) 为了要将新元素插入到一个有序的线性表中,可以 从原有序线性表的最后一个元素开始,往前逐个与新元 素比较,并将大于新元素的所有元素都往后移动一个位 置(升序排列),直到找到新元素应插入的位置为止。 算法: If n=m then output “overflow!” Else {if n=0 then L(n+1)=b} else {i=n while(i0)and(L(i)b) do {L(i+1)=L(i) ; i=i-1;} L(i+1)=b } n=n+1 } 数组实现(删除) 为了要在原线性表中删除一个元素,且任保持线性表的顺序存储结构,可以从原有序线性表的第一个元素开始,往后逐个与新元素比较,直到找到与新元素相同的元素为止,然后从当前位置的下一个位置开始,将后面所有元素都往前移动一个位置,直到线性表的最后一个元素为止。 算法: If n=0 then output “underflow!” Else {i=1 while(I=n)and(L(i)b) do { i=i-1;} if in then output “not this element” else {if in then for j=i to n-1 do L(j)=L(j+1) n=n-1} } 指针实现 1、设计一个结构体,存放每一个人的基本情况 (姓名、电话号码、年龄)。 struct list { char name[20]; char tel[20]; int age; struct list *next; }; struct list *head=NULL; 2、设计三个函数,分别完成: 显示功能: void data_show(struct list *show); 增加功能: void data_input(struct list *ins); 删除功能: void data_delete(char *str); 算法 插入结点: inlinkst(head,a,b) getnode(p);data(p)←b;//取得一个新结点 if(head==null) then { head←p;next(p)←null;return } if(data(head)=a) then {next(p)←head;head←p;return} lookfor(head,a,p) next(p)← next(q);next(q)← p; return 五、实验报告要求 简述实验目的、原理 写出线性表插入、删除结点算法 附上程序清单 比较利用数组和指针实现线性表的插入与删除的

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档