当前位置: 首页 > news >正文

树的概念简记

一、特点

树由节点及连接节点的边构成。
树有以下属性:
1、有一个根节点;
2、除根节点外,其他每个节点都与其唯一的父节点相连;
3、从根节点到其他每个节点都有且仅有一条路径;

此外,一般而言,一棵树要么为空,要么由一个根节点和零棵或多棵子树构成,子树本身也是一棵树,每棵子树的根节点通过一条边连到父树的根节点。

二、关键概念

1、节点
节点是树的基础,名字称作“键”,附加信息“有效载荷”。
2、边
两个节点通过一条边相连,表示它们之间存在关系。除了根节点以外,其他每个节点都仅有一条入边,出边则可能有多条。
3、根节点
根节点是树中唯一没有入边的节点。
4、路径
路径是由边连接的有序节点列表。
5、子节点
一个节点通过出边与子节点相连。
6、父节点
一个节点是其所有子节点的父节点。
7、兄弟节点
具有同一父节点的节点互为兄弟节点。
8、子树
一个父节点及其所有后代的节点和边构成一棵子树。
8、叶节点
叶节点没有子节点。
10、层数
节点 n 的层数是从根节点到 n 的唯一路径长度。

11、高度
树的高度是其中节点层数的最大值。

三、遍历

1、前序遍历
先访问根节点,然后递归地前序遍历左子树,最后递归地前序遍历右子树。
2、中序遍历
先递归地中序遍历左子树,然后访问根节点,最后递归地中序遍历右子树。
3、后序遍历
先递归地后序遍历右子树,然后递归地后序遍历左子树,最后访问根节点

四、二叉树

如果每个节点最多有两个子节点,我们就称这样的树为二叉树

1、完全二叉树

除了最底层(叶子层),其他每一层的节点都是满的,堆就是一种完全二叉树,且堆的叶子层一般都是从左到右填,堆又分小根堆和大根堆

1、最小堆(小根堆)

最小的元素一直在队首

2、最大堆(大根堆)

最大的元素一直在队首

3、二叉搜索树

二叉搜索性:小于父节点的键都在左子树中,大于父节点的键则都在右子树中

4、平衡二叉搜索树

平衡二叉搜索树的任何结点的左子树和右子树高度最多相差1

5、红黑树

红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,有如下特点

1. 每个结点或是红色的,或是黑色的。
2. 根结点是黑色的。
3. 每个为空的叶结点都是黑色的。
4. 如果一个结点是红色的,则它的两个子结点都是黑色的。
5. 对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点。


http://www.mrgr.cn/news/39387.html

相关文章:

  • page-break系列属性与分页的控制
  • 02-指针代码示例
  • rabbitMQ 简单使用
  • CUDA 参考文章
  • 网络爬虫自动化Selenium浏览器操作
  • Quill Editor 富文本编辑器的高度问题
  • vue 项目中的配置文件(.env)的用法
  • 理解Python闭包概念
  • 在Python中实现多目标优化问题(1)
  • Object Pascal 过程与函数
  • 三元祖表的定义
  • RVC变声器入门
  • PostgreSQL数据库与PostGIS在Windows中的部署与运行
  • 《OpenCV 计算机视觉》—— Harris角点检测、SIFT特征检测
  • 彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)
  • Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录
  • C#基于SkiaSharp实现印章管理(10)
  • C++番外篇-------排序算法总结
  • 前海桂湾地铁E出口免费停车位探寻
  • rocky9.2实现lvs(DR模式)+keepalived实现高可用的案例详解(双机热备、lvs负载均衡、对后端服务器健康检查)