19-数据结构_树-存储
来源:互联网 发布:tensorflow syntaxnet 编辑:程序博客网 时间:2024/06/02 21:00
存储
B. 将线性存储的有效结点还原成以前的树
解决这两个问题
A. 可通过先(中/后)序转换成线性结构
B. 用无效结点将二叉树补充成完全二叉树
综上:
A. 只有完全二叉树才可以用连续的方式来存储
B. 存储一般二叉树, 必须要将其补充为完全二叉树
完全二叉树以连续的方式存储的
优点:
某个结点的子结点和父节点的编号都能计算出来.
因此,判断是否有子结点,查找其父/子节点 非常快.
缺点:
非常耗内存
转换方法:
保证任意一个结点
A. 左指针域指向它的第一个孩子
B. 右指针域指向它的下一个兄弟
只要满足此条件, 就可把普通树转换成二叉树
该二叉树一定没有右子树
1, 二叉树的存储
1) 连续存储[完全二叉树]
面临两个问题
A. 有效节点存到线性的结构(数组)B. 将线性存储的有效结点还原成以前的树
解决这两个问题
A. 可通过先(中/后)序转换成线性结构
B. 用无效结点将二叉树补充成完全二叉树
综上:
A. 只有完全二叉树才可以用连续的方式来存储
B. 存储一般二叉树, 必须要将其补充为完全二叉树
完全二叉树以连续的方式存储的
优点:
某个结点的子结点和父节点的编号都能计算出来.
因此,判断是否有子结点,查找其父/子节点 非常快.
缺点:
非常耗内存
2) 链式存储
如图. 很容易理解2, 一般树的存储
1) 双亲表示法
求父节点方便
2) 孩子表示法
求子结点方便
3) 双亲孩子表示法
求父结点子结点都很方便
4) 二叉树表示法[孩子兄弟表示法]
把一个普通书转换成二叉树来存储转换方法:
保证任意一个结点
A. 左指针域指向它的第一个孩子
B. 右指针域指向它的下一个兄弟
只要满足此条件, 就可把普通树转换成二叉树
该二叉树一定没有右子树
3, 森林的存储
把森林转换为二叉树存储.森林的所有树的根结点相互为兄弟.
- 19-数据结构_树-存储
- 数据结构_6:树:C语言_顺序存储
- 数据结构_6:树:C语言_链式存储
- 数据结构_线性表链式存储Node
- 数据结构_树_二叉树的建立、遍历、复制与移除_二叉链表存储_C++实现
- 数据结构_线性表_顺序/链式存储优缺点比较
- 数据结构_树结构
- 数据结构_二叉树
- Java 数据结构_树
- 【郝斌数据结构自学笔记】60-65_树的定义_树的专业术语解释_树的分类_二叉树连续存【重点】_二叉树的链式存储_普通树的存储
- 数据结构_树_二叉树性质/二叉树存储结构/二叉树相应操作(建立、遍历 )
- 【数据结构_树_Tree_0981】统计利用二叉树存储的森林中树的棵数
- 数据结构-树的存储
- 数据结构_队列_顺序存储结构队列/链式存储结构队列
- 数据结构_查找_次优查找树
- 数据结构_二叉索引树_模板
- 数据结构_树形结构_二叉树
- 数据结构_线段树_基础模板
- PAGED_CODE
- web.xml中contextConfigLocation的作用
- 认真考虑题目中所出现的任何问题
- hdu2993 斜率优化
- Sublime Text 3 base 安装Package Control
- 19-数据结构_树-存储
- Ubuntu12.04下的Android 源码编译
- 移植madplay到s5pv210下
- 【SVN】VisualSVN建立SVN服务器
- JAVA代理详解
- 学习站点
- 在ios模拟器中输入中文
- 如何查看LINUX硬件配置信息
- hdu3518——后缀自动机