【数据结构】树形结构:二叉树&树
来源:互联网 发布:淘宝哪家店是阿迪正品 编辑:程序博客网 时间:2024/05/21 04:43
深度(高度):层数
满二叉树:深度k上不能再添加叶结点
完全二叉树:深度k上,第k层只删除右边的叶结点
不完全二叉树:深度k上,第k层删除了左边的叶结点
排序二叉树:左根右的数值从小到大,且不重复
最优二叉树(哈夫曼树):结点的度不为1,带权(一般右子树带权)的路径长度最短。
二叉树的顺序存储:采用虚拟结点补全成完全二叉树,再从上到下、从左到右标识下标值,存入一块内存。(这种存储方式浪费空间)
二叉树常用两种链式存储结构:二叉链表、三叉链表(三叉链表中的结点比二叉链表多了一个指向双亲的指针域)。
二叉链表的递归遍历:
先序遍历:根左右
中序遍历:左根右
后序遍历:左右根
层序遍历:按层从上到下、从左到右
利用遍历可以实现许多运算,如求树的高度。
二叉链表的非递归遍历(栈):1、指针指向左孩子;2、取栈顶元素;3、出栈;4、指向右孩子【循环1-4,到指针或栈为空】
树有三种链式存储结构:1、孩子链表;2、孩子兄弟链表;3、双亲表
树转换为二叉树:1)保留第一个结点与父结点的链接,其他兄弟结点断开;2)兄弟结点连接。
森林转换为二叉树:1)每棵树转换为二叉树;2)转换成的二叉树的根节点看为兄弟结点连接。
构造哈夫曼树:1、结点按权排成一排;2、权值最小的合成新二叉树,其根结点的值为子结点权之和;3、将新结点与剩余结点比对,最小的合成……(以此类推,直至剩一棵树)
哈夫曼树来源于判定树,利用子结点权重不同,使权重小的被比较的次数最小,则权重大的离根结点越近。
0 0
- 【数据结构】树形结构:二叉树&树
- 数据结构_树形结构_二叉树
- 【数据结构与算法学习笔记】PART4 树形结构(二叉树,堆)
- 输出树形结构的二叉树
- 数据结构基本结构:二叉树
- 二叉树遍历线索化及树形结构输出
- 树形结构之二叉树基础(一)
- 【数据结构】二叉树顺序结构实现_BiTreeArray
- 【数据结构】二叉树链式结构实现_BiTreeLink
- 数据结构 - 二叉树的存储结构
- 数据结构(8):二叉树的存储结构
- 二叉树的存储结构(数据结构)
- 打印二叉树形结构
- 数据结构--二叉树--后续遍历二叉树(顺序结构)
- 数据结构--二叉树--后续遍历二叉树(链式结构)
- 【数据结构】二叉树的顺序存储结构--遍历二叉树
- 【数据结构】二叉树链式结构--遍历二叉树
- 数据结构之树形结构
- [LeetCode-169] Majority Element(找出数组中超过一半元素)
- Mysql数据引擎的选择
- Hibernate:Disjunction&Conjunction构造复杂的查询条件.
- *** glibc detected *** malloc(): memory corruption
- ARM面试题
- 【数据结构】树形结构:二叉树&树
- Docker学习笔记之Dockerfile
- U3D之ellipsoid particle emitter组件
- ArcGIS常见的错误
- Linux command 汇总(未完待续)
- jquery 实现回到顶部
- ps 命令
- Linux块设备驱动之内存模拟块设备
- mybatis解决字段名与实体类属性名不相同的冲突