C语言数据结构——二叉链表
来源:互联网 发布:牙签弩淘宝20¥ 编辑:程序博客网 时间:2024/06/14 01:22
链式存储结构
二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。
通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。其结点结构为:
其中,data域存放某结点的数据信息;lchild与rchild分别存放指向左孩子和右孩子的指针,当左孩子或右孩子不存在时,相应指针域值为空(用符号∧或NULL表示)。利用这样的结点结构表示的二叉树的链式存储结构被称为二叉链表,如图5-8所示。
(a) 一棵二叉树 (b) 二叉链表存储结构
图5-8 二叉树的二叉链表表示示意图
为了方便访问某结点的双亲,还可以给链表结点增加一个双亲字段parent,用来指向其双亲结点。每个结点由四个域组成,其结点结构为:
这种存储结构既便于查找孩子结点,又便于查找双亲结点;但是,相对于二叉链表存储结构而言,它增加了空间开销。利用这样的结点结构表示的二叉树的链式存储结构被称为三叉链表。
图5-9给出了图5-8 (a)所示的一棵二叉树的三叉链表表示。
图5-9二叉树的三叉链表表示示意图
尽管在二叉链表中无法由结点直接找到其双亲,但由于二叉链表结构灵活,操作方便,对于一般情况的二叉树,甚至比顺序存储结构还节省空间。因此,二叉链表是最常用的二叉树存储方式。
结构5-2二叉树的链式存储
#define datatype char //定义二叉树元素的数据类型为字符typedef struct node //定义结点由数据域,左右指针组成{ Datatype data; struct node *lchild,*rchild; }Bitree;
阅读全文
2 0
- C语言数据结构——二叉链表
- C语言数据结构——二叉树
- 数据结构C语言——用二叉链表示二叉树
- 数据结构C语言实现系列[7]——二叉树
- 数据结构C语言实现系列——二叉树
- 数据结构C语言实现系列——二叉树[转]
- 数据结构C语言实现系列——二叉树
- 数据结构——二叉查找树(C语言)
- C语言数据结构——遍历二叉树
- 数据结构—二叉树(C语言实现)
- C语言-数据结构-二叉树
- 数据结构之---C语言实现二叉树的二叉链表存储表示
- C语言数据结构——数据结构有序二叉树的函数实现
- C语言数据结构——顺序表
- C语言数据结构——线性表
- 数据结构之---C语言实现二叉树的三叉链表存储表示
- 数据结构——二叉树的链式实现(C语言)
- 数据结构——二叉树的遍历问题(C语言)
- 之江学院 K: qwb与小数(思维求A/B第n位小数)
- 【数据结构】线性表顺序结构之增删操作
- ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
- vb.net 教程 5-16 图像处理之ImageAttributes 类2 颜色矩阵2
- redis 配置文件 redis.conf解读
- C语言数据结构——二叉链表
- 滚动哈希(Rabin-Karp算法)
- linux命令sort详解
- 初窥Intent
- Kotlin 从学习到 Android 第五章 返回和跳转
- 回溯法--矩阵中的路径问题(java)
- myeclipse中的web项目导入到eclipse中出现的问题及解决办法
- CQU TaoSama与煎饼 (dp)
- 关于Eclipse启动报错,jvm版本不匹配的问题