1、第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 本次课开始学习链表啦!第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 教学主题 链表的概念、链表的建立和输出教学目标通 过 本次 课 的学 习 ,使学生掌握 链 表的基本概念, 链 表的 类 型及基本 结 构, 单链 表的建立、 输 出、 释 放 。教学重点 1 链 表的 类 型和基本 结 构 2 单链 表的建立和 输 出教学难点 理解各种 类 型的 链 表 结 构教案第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 主要内容 链表概述 单链表及其基本结构 单向循环链表、双向链表及双
2、向循环链表 单链表的建立和输出第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 链表概述 链表的引入数组(静态存储方法) :占用 连续的 内存区域。动态存储方法 :申请分配的内存空间之间 不一定是连续的 。 链表的分类根据 指针域的不同 和 结点构造链的方法不同 ,主要有 单链表 、 单向循环链表 、 双向链表 和 双向循环链表 等。每一种又有 带附加头结点结构 和 不带附加头结点结构 两种。通过 链表 建立联系第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 单链表的概念 单链表 :是用 “一根有方向的链 ”把各数据元素联系起来 的一种数据结构。 结点
3、是 单链表的 基本存储单元 ,一个结点与一个数据元素相对应。 每个 结点内部 都是内存中一块 连续 的存储空间,各个 结点之间 的存储空间是 不一定 连续 的。结点第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 单链表的基本结构(定义结点) 结点 定义定义一个结构体,用来保存单链表结点的数据,其中含有一个 特殊的成员 ,该成员定义为指向该结构体本身的指针变量。 结点示意图:指针域数据域第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 单链表结点定义举例 例如:定义学生结点struct student int no;char name MAXLEN ;
4、int score N ;struct student *next; ;千万不可少哦数据域 data指 针 域 link第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 单链表的基本结构(结点之间建立联系) 结点与结点之间联系的建立用指针域建立结点之间的联系。方法是 :在第一个结点的指针域内存入第二个结点的首地址,在第二个结点的指针域内又存放第三个结点的首地址,依次类推,直到最后一个结点。最后一个结点因无后续结点连接,其指针域可赋值为 NULL。第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 单链表示意图 单链表(含有附加头结点)的示意图 单链表(不含附加头结点)的示意图思考: Head的作用? 两者 的不同?单链表的特点:对于 任意结点,能方便地找到后继结点。第 7章第 7次课 -链表的概念、链表的建立和输出 C语言与数据结构 判断单链表是否为空的条件 有附加头结点的单链表单链表为空的条件: head-next = NULL 无附加头结点的单链表单链表为空的条件: head = NULL