知识大全 数据结构之线性表的链式存储[3]
Posted 结点
篇首语:你不能左右天气,但你能转变你的心情。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构之线性表的链式存储[3]相关的知识,希望对你有一定的参考价值。
链表的每个元素构成一个结点 结点定义如下
Typedef struct node
DataType data; /*每个元素数据信息*/
struct node *next; /*存放后继元素的地址*/
LNode *LinkList;
定义头指针变量
LinkList H;
上面定义的LNode是结点的类型 LinkList是指向LNode类型结点的指针类型 H为头指针变量 指向单链表的第一个结点 如图 (b)所示 当单链表为空时H= NULL 如图 (a)所示
为了方便操作单链表 一般在单链表的第一个结点之前加一个称为 头结点 的附加结点 如图 (c)所示 头结点 的设置会给单链表操作带来方便 当然 用户也可以在附加结点的数据域中存放一些与整个单链表相关的信息(如单链表长度等) 指针域中存放的是第一个数据结点的地址 空表时指针域为空(NULL) 注意 在这种情况下 以H >next等于 NULL表示单链表为空 如图 (d)所示
声明 在以后的算法中 若不作特别说明 链表是指采用带头结点的链表形式 在链表的示意图中 通常规定用符号 ∧ 表示NULL
cha138/Article/program/sjjg/201311/23373相关参考
顺序表的存贮特点是利用物理上的相邻关系表达出逻辑上的前驱和后继关系它要求用连续的存储单元顺序存储线性表中各元素因此对顺序表进行插入和删除时需要通过移动数据元素来实现线性表的逻辑上的相邻关系从而影响
> cha138/Article/program/sjjg/201311/23374
单链表的运算 建立单链表 假设线性表中结点的数据类型是字符我们逐个输入这些字符型的结点并以换行符\\n为输入条件结束标志符动态地建立单链表 的常用方法有如下两种 ()头插法建表 ①算法思
插入运算 ()思想方法 插入运算是将值为x的新结点插入到表的第i个结点的位置上即插入到ai与ai之间 具体步骤 ()找到ai存储位置p ()生成一个数据域为x的新结点*s ()令结点*
()尾插法建表 ①算法思路 从一个空表开始重复读入数据生成新结点将读入数据存放在新结点的数据域中然后将新结点插入到当前链表的表尾上直到读入结束标志为止 > 具体方法【参见动画演示】 注意
单链表的查找运算 ()按序号查找 ①链表不是随机存取结构 在链表中即使知道被访问结点的序号i也不能像顺序表中那样直接按序号i访问结点而只能从链表的头指针出发顺链域 next逐个结点往下搜索
()尾插法建带头结点的单链表 ①头结点及作用 头结点是在链表的开始结点之前附加一个结点它具有两个优点: ⒈由于开始结点的位置被存放在头结点的指针域中所以在链表的第一个位置上的操作就和在表的其
单链表 链接存储方法 链接方式存储的线性表简称为链表(LinkedList) 链表的具体存储表示为 ①用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的也可以是不连续的)
二知识点解析 线性表 线性表是一种最简单的数据结构在线性表方面主要考查线性表的定义和基本操作线性表的实现在线性表实现方面要掌握的是线性表的存储结构包括顺序存储结构和链式存储结构特别是链式存储结
根据C语言中函数参数的传递采用值传送的规则有时定义一个指向SeqList类型的指针更为方便能够实现信息的回送因此我们定义一个指针类型 typedefSeqList*PSeqList; PSeq