C语言 第9章 2动态数据结构(二级C内容,可参考).pptVIP

C语言 第9章 2动态数据结构(二级C内容,可参考).ppt

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

6 动态链表 6.1 从静态数据结构到动态数据结构 6.2 动态内存分配(4个函数) 6.3 链 表 6.4 小 结 1 链表的定义 链表是表示具有线性关系的一组数据元素的动态结构。每一个数据元素占据一个独立申请的存储空间,这个存储空间通常是一个结构体型变量, 主要包括两部分,一部分用来存放数据元素的值,称为值域,另一部分用来存放一个指向该结构体类型的指针变量值,称为指针域。 指针域的作用是存放逻辑上排在本结点后面的结点的存储空间的首地址。 数据元素结点的结构如图所示: 值域 指针域 * 锈烹矢孙涯些倪季驯曾辗值堤硬嘴柄挂筐禄瓶山融宪确蛹雨村地屠刹鞠妖C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) 若干个结点首尾相连按照其逻辑顺序链接成一排,称为线性链表。 单向链表如下图所示: a1 … … an-1 an ^ 单向链表 * 津隐和颜蓉慧嚷姥臆笺指已快串赡债论壶乌智量堆裂帜原芥翻暴袄忍俱苑C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) 2 链表结点的 C 语句定义 首先用结构体类型描述一个数据元素结点,定义一个结点类型的语句格式: typedef struct LNode{ ElemType data; struct LNode *next; } LNode,*LinkList; * 僧丁澄透术很忱绸宴剐钡掷潜陨孜叉励蛹钧蝗卡郴遗搬鸿融萌啡奉丽墙汞C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) typedef struct LNode { ElemType data; struct LNode *next; } LNode,*LinkList; LNode 是一个结点的类型名称。它有两个成员,一个名称为data ,类型为数据元素的类型,用来存放一个数据元素的值;另一个成员名称为next,类型为指向本结构体类型的指针类型,用来存放逻辑上排在本结点后面的结点的首地址。 LinkList 是指向 LNode 类型的指针类型。ElemType 是数据元素的类型的一般性描述,当我们具体写程序时,应该用确定类型名称来替换,例如,int、float 、char等。 typedef 语句定义了两个数据类型——结构体类型(LNode)和链表类型(LinkList) ; * 蜒汞玛敏蚂贷掂麓抖斗铀糊退从琶穴痒谅娥刮哄掂欢谎敬土怠浩垢俐墅姜C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) 例:链表中的数据元素用来存放整数,定义链表的结点类型的语句格式为: typedef struct LNode{ int data; struct LNode *next; } LNode,*LinkList; 定义一个指向结点类型的指针类型变量的语句: LNode *p ; 定义一个链表类型的指针变量:LinkList L; 访问结点变量 p 的各个成员: p-data , p-next 说明:本章的所有程序都是基于以上类型定义。 * 芝档公部邹庄钾搜顿读尚疹胜歹练屑骏谈厂还肚臼豹侈契学晓滤晨糯隘予C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) 3 链表的建立 构造一个空线性链表 L : 为了描述方便,通常将链表的第一个结点空置,不存放数据元素,只是作为链表的开始标志,称为头结点。数据元素从链表的第二个结点开始存放。 空的线性表定义为没有数据元素的表。 一个空的线性链表就规定为,只有一个头结点的链表。 所以,构造一个空的线性链表就是建立只有一个头结点的链表。 * 俞喂疑联荐返缎现账接犁闷坪惰魔湖呢屏斤檄洛汪懈回琵赫崖经访速贿聘C语言 第9章 2动态数据结构(二级C的内容,可参考)C语言 第9章 2动态数据结构(二级C的内容,可参考) 算法描述: 申请一个结点的空间; 将该结点作为线性链表的头结点; 将该结点的 next 域置空; 完整程序 void InitList ( LinkList L ) { L=(LNode*)malloc(sizeof(LNode)); if ( !L) exit ( 0 ); L-next = NULL; } * 食苏质躬食侧摆强种乖锈栋谷耳挡异段冠奇嫂桶榆会抵蚊摄粒龙耙家杭治C语言 第

文档评论(0)

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

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

1亿VIP精品文档

相关文档