知识大全 数据结构之线性表的链式存储[1]
Posted 结点
篇首语:不患人之不己知,患不知人也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构之线性表的链式存储[1]相关的知识,希望对你有一定的参考价值。
顺序表的存贮特点是利用物理上的相邻关系表达出逻辑上的前驱和后继关系 它要求用连续的存储单元顺序存储线性表中各元素 因此 对顺序表进行插入和删除时需要通过移动数据元素来实现线性表的逻辑上的相邻关系 从而影响其运行效率 本节介绍线性表的另一种存储形式——链式存储结构 它不需要用地址连续的存储单元来实现 而是通过 链 建立起数据元素之间的次序关系 因此它不要求逻辑上相邻的两个数据元素在物理结构上也相邻 在插入和删除时无需移动元素 从而提高其运行效率 链式存储结构主要有 单链表 循环链表 双向链表 静态链表等几种形式
单链表
链表是通过一组任意的存储单元(可以连续也可不连续)来存储线性表中的数据元素 根据线性表的逻辑定义 单链表的存储单元不仅能够存储元素 而且要求能表达元素与元素之间的线性关系 对数据元素ei而言 除存放数据元素自身的信息ei之外 还需要存放后继元素ei+ 所在存贮单元的地址 这两部分信息组成一个 结点 每个结点包括两个域 数据域——存放数据元素本身的信息;指针域——存放其后继结点的地址 结点的结构如图 所示 因此n个元素的线性表通过每个结点的指针域构成了一个 链条 称之为链表 因为每个结点中只有一个指向后继的指针 所以称其为单链表 为了访问单链表 我们只要知道第一个结点地址就能访问第一个元素 通过第一个元素的指针域得到第二个结点的地址 …… 以此类推可以访问所有元素 这样称第一个元素的地址为 头指针
例如 假设有线性表(A B C D E F G H)对应的链式存储结构如图 所示 头指针为 H 最后一个结点没有后继 其指针域必需置空(以NULL表示) 表明此表到此结束 这样就可以从第一个结点的地址开始 顺籐摸瓜 找到每个结点
cha138/Article/program/sjjg/201311/23375相关参考