树的相关概念和性质

  • 遍历
  • 哈夫曼树
名称 概念 相关性质
二叉树 树的节点的子节点不超过两个 不存在度大于2的节点
满二叉树 每一层的节点数都达到最大值 节点的度要么为0要么为2
完全二叉树 除最后一层外,其他层满足满二叉树的性质,且最后一层的节点连续集中在左边 满二叉树是完全二叉树的特例
平衡二叉树 左右子树高度差不超过1 其左右子树也是平衡二叉树
二叉排序树 左子树节点值小于跟节点值,右子树值大于根节点值 对二叉搜索树进行中序遍历就可得到有序数组
线索二叉树 利用二叉树的n+1个空指针域来存放其前驱和后继信息 叶子节点的左右线索标志皆为0

树中节点的度是指它包含的子节点数。一棵树中所有的度数和就是树所含边的数量,也就是节点数-1.

遍历

先序遍历:先访问根节点,再访问左节点,最后访问右节点。
中序遍历:先访问左节点,再访问根节点,最后访问右节点。
后序遍历:先访问左节点,在访问右节点,最后访问根节点。
层序遍历:BFS,一层一层从左向右遍历。
任何一棵二叉树的叶子节点在先序、中序、后序遍历中相对次序都不会发生变化。

哈夫曼树

利用叶子节点的权值构造,权值越小的叶子节点越靠下,即深度越深,权值越大的叶子节点越靠上,深度越小。每次从给定的带权值叶子节点中选取两个权值最小的点,合并得到一个父节点,父节点代替两个子节点继续进行筛选,直到所有叶子节点都进行了合并。是带权路径和最小的树。每个叶子节点的权值*它所在的深度(边的高度),并求和即可。

二叉树、满二叉树、完全二叉树、平衡二叉树、二叉排序树、线索二叉树相关推荐

  1. 数据结构之——排序二叉树、平衡二叉树和线索二叉树

    1.排序二叉树 排序二叉树(BST)也称二叉查找树,排序二叉树或者是一棵空树,或者是一棵具有下列特性的非空二叉树: (1)若左子树非空,则左子树上所有结点关键字值小于根节点的关键字值. (2)若右子树 ...

  2. 线索二叉树,画图教你秒懂线索二叉树(线索二叉树的建立和简单操作)逻辑代码分析

    数据结构专升本学习,线索二叉树 前言 前面我们学习树和二叉树的一些基本操作,今天我们学习一个新的知识,学习一下线索二叉树,线索二叉树是由二叉链存储结构变化而来的(我们先得有个二叉链树,再做处理),就是 ...

  3. c语言线索二叉树作用,C语言递归实现线索二叉树

    本文实例为大家分享了C语言递归实现线索二叉树的具体代码,供大家参考,具体内容如下 描述:将二叉树中结点的空左孩子指针域指向前驱结点,将空的右孩子指针域指向后继结点. code: #pragma war ...

  4. 线索二叉树 C语言 数据结构 先序线索二叉树 中序线索二叉树 后序线索二叉树

    在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序.中序.后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化. 文章目录 一.c语言实现先序线索.中序线 ...

  5. 【练习】2021下半年数据结构刷题笔记和总结 (二) 树、查找-- 不同的排序算法、二叉排序树 平衡二叉树、哈希表查找、线索二叉树、

    记录自己下半年写题目的记录.题目来自书或者网站. 练习(一)的地址: https://blog.csdn.net/qq_41358574/article/details/117098620?ops_r ...

  6. 【数据结构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 ...

  7. 查找二叉树、完全二叉树、线索二叉树、最优二叉树

    文章目录 前言 一.查找二叉树(二叉排序树) 二.完全二叉树 三.线索二叉树 四.最优二叉树(哈夫曼树) 前言 2021年上半年 软件设计师 上午试卷中有这样一道题 58.当二叉树的结点数目确定时,_ ...

  8. 数据结构入门----遍历二叉树和线索二叉树

    遍历二叉树(Traversing Binary Tree) 二叉树的遍历是指从根结点出发,按照某种次序访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次. 实际应用中,查找树中符合条件的结点 ...

  9. 深入了解,学习线索二叉树

    学习线索二叉树 何谓二叉树 线索二叉树的诞生--中序序列 线索的价值 线索的建立 线索的问题 线索化二叉树节点结构 线索二叉树建立 总结 何谓二叉树 二叉树(binary tree)是指树中节点的度不 ...

  10. 重拾算法(3)——用458329个测试用例全面测试二叉树和线索二叉树的遍历算法

    重拾算法(3)--用458329个测试用例全面测试二叉树和线索二叉树的遍历算法 在"上一篇"和"上上一篇"中,我给出了二叉树和线索二叉树的遍历算法.给出算法容易 ...

最新文章

  1. 核密度估计python_核密度估计Kernel Density Estimation(KDE)
  2. VTK:柏拉图式固体用法实战
  3. java包命名规则名词_java中命名规范
  4. Microsoft宣布.NET Core支持计划
  5. 无法获取签名信息,请上传有效包(110506)
  6. 【转】动态链接库(Dynamic Link Library)学习笔记
  7. perform update operations on columns of type JSONB
  8. ORACLE表、表分区、表空间的区别
  9. 我整理的一份来自于线上的Nginx配置(Nginx.conf),希望对学习Nginx的有帮助
  10. MyBatis学习后篇
  11. wsdl2java 参数_wsdl2java参数详解
  12. 工业对5G网络的应用需求和通信过程
  13. 常用的四大绩效考核方法以及优缺点
  14. 腊八节福利送上 , 抽奖活动来啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
  15. MIUI系统获取短信权限问题
  16. 利用阿里云镜像加速器对docker镜像源加速
  17. python列表输出学生姓名学号链表_建立一个链表,记录学生的姓名,学号和成绩,
  18. xctf攻防世界 MISC高手进阶区 misc1
  19. DRAMA QUEEN_洪晃在ilook的BLOG
  20. [golang]给slice赋值或者遍历slice得到的结果不是预期结果

热门文章

  1. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 1.音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按
  2. win10禁用浏览器css,Win10系统解决使用Edge浏览器下的隐藏设置
  3. Kali安装谷歌拼音
  4. 大学计算机音乐一起学,和学生一起学音乐
  5. PPT技巧分享,教你制作美美的PPT图表
  6. 构造虚假栈帧 | 花式栈溢出
  7. 混合正弦余弦算法和Lévy飞行的麻雀算法
  8. 【Keras】使用LSTM预测股票走势
  9. mtk wifi display投射屏幕
  10. 深度学习声纹识别_声纹识别:你的声音是这样被“破译”的!