C语言程序设计第10章指针.ppt

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

第10章 指针

15.2 链表的相关概念

15.2 链表的操作

15.2 链表的相关概念

链表是由一个个结点顺序连接起来构成的表,称为链表。其中,结点用来存放元素信息和下一个元素的地址。链表中的元素在逻辑上相邻,在物理上不一定相邻。而数组中的元素逻辑上相邻,在物理上也一定相邻。本节主要讲解链表的基本概念和动态内存分配。

15.1 链表的相关概念

15.1.1 链表

1.链表

链表是由结点连接而成,结点就表示一个元素的信息。链表就是通过地址(指针)将每个结点(元素)连接起来的表。例如,链表中的元素包括A、B、C、D,如图15.1所示。

15.1 链表的相关概念

在图15.1中,链表由4个结点构成,每个结点包括两个域:数据域和指针域。数据域用来存放数据信息,指针域表示地址信息,指向下一个结点的地址。数据域存放的是’A’、’B’、’C’、’D’。在C语言中,通常用箭头表示结点之间的先后关系,一个结点的指针指向下一个相邻的元素。这样利用指针将结点连接起来的表就构成了链表。

15.1 链表的相关概念

如果要访问链表中的元素,需要先找到第一个结点,为了找到链表的第一个结点,还需要一个指针指向第一个结点,我们称这样的指针为头指针,记作head。另外,最后一个元素’D’的结点没有其它结点,将最后一个结点的指针域置为NULL。如图15.2所示。

15.1 链表的相关概念

2.定义链表的结点

链表是由结点构成,结点包括数据域和指针域。一个结点可以包括一个或多个数据域,因此,需要将结点定义为结构体类型。因为指针域是指向自身一样的结构体类型数据,如图15.2中的元素’A’所在结点的指针域指向元素’B’所在的结点,而’A’和’B’都是同一个类型。

15.1 链表的相关概念 struct student /*定义结点类型*/ { char data; /*数据域*/ struct student *n

最近下载