二叉树、满二叉树、完全二叉树、平衡二叉树、二叉排序树、线索二叉树
树的相关概念和性质
- 度
- 遍历
- 哈夫曼树
名称 | 概念 | 相关性质 |
---|---|---|
二叉树 | 树的节点的子节点不超过两个 | 不存在度大于2的节点 |
满二叉树 | 每一层的节点数都达到最大值 | 节点的度要么为0要么为2 |
完全二叉树 | 除最后一层外,其他层满足满二叉树的性质,且最后一层的节点连续集中在左边 | 满二叉树是完全二叉树的特例 |
平衡二叉树 | 左右子树高度差不超过1 | 其左右子树也是平衡二叉树 |
二叉排序树 | 左子树节点值小于跟节点值,右子树值大于根节点值 | 对二叉搜索树进行中序遍历就可得到有序数组 |
线索二叉树 | 利用二叉树的n+1个空指针域来存放其前驱和后继信息 | 叶子节点的左右线索标志皆为0 |
度
树中节点的度是指它包含的子节点数。一棵树中所有的度数和就是树所含边的数量,也就是节点数-1.
遍历
先序遍历:先访问根节点,再访问左节点,最后访问右节点。
中序遍历:先访问左节点,再访问根节点,最后访问右节点。
后序遍历:先访问左节点,在访问右节点,最后访问根节点。
层序遍历:BFS,一层一层从左向右遍历。
任何一棵二叉树的叶子节点在先序、中序、后序遍历中相对次序都不会发生变化。
哈夫曼树
利用叶子节点的权值构造,权值越小的叶子节点越靠下,即深度越深,权值越大的叶子节点越靠上,深度越小。每次从给定的带权值叶子节点中选取两个权值最小的点,合并得到一个父节点,父节点代替两个子节点继续进行筛选,直到所有叶子节点都进行了合并。是带权路径和最小的树。每个叶子节点的权值*它所在的深度(边的高度),并求和即可。
二叉树、满二叉树、完全二叉树、平衡二叉树、二叉排序树、线索二叉树相关推荐
- 数据结构之——排序二叉树、平衡二叉树和线索二叉树
1.排序二叉树 排序二叉树(BST)也称二叉查找树,排序二叉树或者是一棵空树,或者是一棵具有下列特性的非空二叉树: (1)若左子树非空,则左子树上所有结点关键字值小于根节点的关键字值. (2)若右子树 ...
- 线索二叉树,画图教你秒懂线索二叉树(线索二叉树的建立和简单操作)逻辑代码分析
数据结构专升本学习,线索二叉树 前言 前面我们学习树和二叉树的一些基本操作,今天我们学习一个新的知识,学习一下线索二叉树,线索二叉树是由二叉链存储结构变化而来的(我们先得有个二叉链树,再做处理),就是 ...
- c语言线索二叉树作用,C语言递归实现线索二叉树
本文实例为大家分享了C语言递归实现线索二叉树的具体代码,供大家参考,具体内容如下 描述:将二叉树中结点的空左孩子指针域指向前驱结点,将空的右孩子指针域指向后继结点. code: #pragma war ...
- 线索二叉树 C语言 数据结构 先序线索二叉树 中序线索二叉树 后序线索二叉树
在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序.中序.后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化. 文章目录 一.c语言实现先序线索.中序线 ...
- 【练习】2021下半年数据结构刷题笔记和总结 (二) 树、查找-- 不同的排序算法、二叉排序树 平衡二叉树、哈希表查找、线索二叉树、
记录自己下半年写题目的记录.题目来自书或者网站. 练习(一)的地址: https://blog.csdn.net/qq_41358574/article/details/117098620?ops_r ...
- 【数据结构Note5】- 树和二叉树(知识点超细大全-涵盖常见算法 排序二叉树 线索二叉树 平衡二叉树 哈夫曼树)
文章目录 5.1 树和二叉树引入 5.1.1 树的概念 5.1.2 树的表示 5.1.3 树中基本术语 5.2 二叉树 5.2.1 概念 5.2.2 二叉树的性质 5.2.3 特殊的二叉树 5.2.4 ...
- 查找二叉树、完全二叉树、线索二叉树、最优二叉树
文章目录 前言 一.查找二叉树(二叉排序树) 二.完全二叉树 三.线索二叉树 四.最优二叉树(哈夫曼树) 前言 2021年上半年 软件设计师 上午试卷中有这样一道题 58.当二叉树的结点数目确定时,_ ...
- 数据结构入门----遍历二叉树和线索二叉树
遍历二叉树(Traversing Binary Tree) 二叉树的遍历是指从根结点出发,按照某种次序访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次. 实际应用中,查找树中符合条件的结点 ...
- 深入了解,学习线索二叉树
学习线索二叉树 何谓二叉树 线索二叉树的诞生--中序序列 线索的价值 线索的建立 线索的问题 线索化二叉树节点结构 线索二叉树建立 总结 何谓二叉树 二叉树(binary tree)是指树中节点的度不 ...
- 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法
重拾算法(3)--用458329个测试用例全面测试二叉树和线索二叉树的遍历算法 在"上一篇"和"上上一篇"中,我给出了二叉树和线索二叉树的遍历算法.给出算法容易 ...
最新文章
- 核密度估计python_核密度估计Kernel Density Estimation(KDE)
- VTK:柏拉图式固体用法实战
- java包命名规则名词_java中命名规范
- Microsoft宣布.NET Core支持计划
- 无法获取签名信息,请上传有效包(110506)
- 【转】动态链接库(Dynamic Link Library)学习笔记
- perform update operations on columns of type JSONB
- ORACLE表、表分区、表空间的区别
- 我整理的一份来自于线上的Nginx配置(Nginx.conf),希望对学习Nginx的有帮助
- MyBatis学习后篇
- wsdl2java 参数_wsdl2java参数详解
- 工业对5G网络的应用需求和通信过程
- 常用的四大绩效考核方法以及优缺点
- 腊八节福利送上 , 抽奖活动来啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
- MIUI系统获取短信权限问题
- 利用阿里云镜像加速器对docker镜像源加速
- python列表输出学生姓名学号链表_建立一个链表,记录学生的姓名,学号和成绩,
- xctf攻防世界 MISC高手进阶区 misc1
- DRAMA QUEEN_洪晃在ilook的BLOG
- [golang]给slice赋值或者遍历slice得到的结果不是预期结果
热门文章
- atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 1.音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按
- win10禁用浏览器css,Win10系统解决使用Edge浏览器下的隐藏设置
- Kali安装谷歌拼音
- 大学计算机音乐一起学,和学生一起学音乐
- PPT技巧分享,教你制作美美的PPT图表
- 构造虚假栈帧 | 花式栈溢出
- 混合正弦余弦算法和Lévy飞行的麻雀算法
- 【Keras】使用LSTM预测股票走势
- mtk wifi display投射屏幕
- 深度学习声纹识别_声纹识别:你的声音是这样被“破译”的!