Chapter02 线性表_3.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文档。上传文档
查看更多
Chapter02 线性表_3

线性表的链式存储结构 线性表的链式存储结构是把线性表的数据元素存放在结点中,通过结点的地址域把结点链接起来,结点间的链接关系体现了线性表中数据元素间的顺序关系。 用链式存储结构实现的线性表称为线性链表或链表。 线性表的链式存储结构 为了正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其直接后继结点的地址(或位置),称为指针(pointer)或链(link),这两部分组成了链表中的结点结构,如图所示。 结点(node): 线性表中一个数据元素所占用的存储空间。它由数据域与指针域两部分组成,数据域用来存储用户的有效数据; 指针域用来存储直接后继数据元素所在结点的地址。 线性表的链式存储结构 链式存储 :用一组任意的存储单元存储线性表中的数据元素。 存储链表中结点的一组任意的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。 链表中结点的逻辑顺序和物理顺序不一定相同,如下例。 线性表的链式存储结构 单向链表 在线性链表中,如果每个结点只有一个链(指针),则称为单向链表(singly linked list)。单向链表各结点的链通常指向其后继结点。 单向链表 为操作方便,总是在链表的第一个结点之前附设一个头结点head指向第一个结点。头结点的数据域可以不存储任何信息(或链表长度等信息)。头结点的指针指向第一个结点的位置。 若线性表为空表,则头结点的指针域为“空”! 单向链表 单向链表 1 结点的描述(Page 28) C语言中用带指针的结构体类型来描述 typedef struct Lnode { ElemType data; /*数据域,保存结点的值 */ struct Lnode *next; /*指针域*/ }LNode; /*结点的类型 */ 单向链表 2 结点的实现 结点是通过动态分配和释放来实现的,即需要时分配,不需要时释放。实现时是分别使用C语言提供的标准函数:malloc() ,realloc(),sizeof() ,free() 。 单向链表 动态分配 p=(LNode*)malloc(sizeof(LNode)); 函数malloc分配了一个类型为LNode的结点变量的空间,并将其首地址放入指针变量p中。 动态释放 free(p) ; 系统回收由指针变量p所指向的内存区。P必须是最近一次调用malloc函数时的返回值。 单向链表 3 最常用的基本操作及其示意图 ⑴ 结点的赋值 LNode *p; p=(LNode*)malloc(sizeof(LNode)); p-data=20; p-next=NULL ; 单向链表 ⑵ 常见的指针操作 单向链表 单向链表 单向链表 (3) 结点分量的访问    利用结点变量的名字*p访问结点分量 方法一:(*p).data和(*p).next    方法二:p-﹥data和p-﹥next 单向链表 (4) 指针变量p和结点变量*p的关系   指针变量p的值——结点地址 结点变量*p的值——结点内容    (*p).data的值——p指针所指结点的data域的值    (*p).next的值——*p后继结点的地址   *((*p).next)——*p后继结点 单向链表 注意: 若指针变量p的值为空(NULL),则它不指向任何结点。此时,若通过*p来访问结点就意味着访问一个不存在的变量,从而引起程序的错误。 * 郑州大学软件学院 Software School, Zhengzhou University * */90 第二章 线性表 内容: 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 一元多项式的表示及相加 data next 图2-2 链表结点结构 data :数据域,存放结点的值。 next :指针域,存放结点的直接后继的地址。 王二麻子 0x99fc 数据域 指针域 结点 */90 1536 元素2 1400 元素1 1346 元素3 ∧ 元素4 1345 h 存储地址 存储内容 指针 1345 元素1 1400 1346 元素4 ∧ ……. …….. ……. 1400 元素2 1536 ……. …….. ……. 1536 元素3 1346 链式存储 h ZHAO QIAN SUN LI ZHOU WU ZHENG WANG ^ H 例 线性表 (ZHAO,QIAN,SUN,L

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档