【数据结构入门精讲 | 第十一篇】一文讲清树

本文详细介绍了树数据结构的基础知识,包括树的定义、常见概念如根节点、叶子节点等,以及二叉搜索树、二叉排序树、哈夫曼树、折半查找判定树的概念和特性。同时,文章还探讨了最小生成树的kruskal算法和prim算法,并讲解了完全二叉树的性质和应用场景。
摘要由CSDN通过智能技术生成

在上一篇中我们进行了排序算法的专项练习,现在让我们开始树的知识点讲解。

在这里插入图片描述

树是一种非线性的数据结构,也是一种表示一对多关系的数据结构,它由若干个节点(Node)和连接这些节点的边(Edge)组成。树有很多应用,如用于实现文件系统、数据库索引和编译器等。

下面是树的一些常见概念及其相关知识点:
1.根节点(Root):树的最顶层节点,它没有父节点。
2.叶子节点(Leaf):没有子节点的节点。
3.父节点(Parent):如果一个节点有子节点,则该节点称为其子节点的父节点。
4.子节点(Child):一个节点的直接后继节点称为其子节点。
5.节点的度(Degree):一个节点拥有的子节点数称为其度。
6.树的度(Degree):树中所有节点度的最大值。
7.深度(Depth):根节点到该节点的路径长度。
8.高度(Height):该节点到叶子节点的最长路径长度。
9.子树(Subtree):以一个节点为根节点的子树是由该节点及其所有后代节点组成的树。
10.兄弟节点(Sibling):拥有同一个父节点的节点互为兄弟节点。
11.前序遍历(Pre-order Traversal):首先访问根节点,然后依次递归遍历左子树和右子树。

可以每个节点的左侧画一个点,然后逆时针画一条线,经过点就输出点对应的节点(推荐)

在这里插入图片描述
中序遍历(In-order Traversal):先递归遍历左子树,然后访问根节点,最后递归遍历右子树。

可以每个节点的下方画一个点,然后逆时针画一条线,经过点就输出点对应的节点(推荐)

在这里插入图片描述
后序遍历(Post-order Traversal):先递归遍历左子树和右子树,然后访问根节点。

可以每个节点的右侧画一个点,然后逆时针画一条线,经过点就输出点对应的节点(推荐)

在这里插入图片描述
12.层序遍历(Level-order Traversal):从上到下,从左到右依次访问每一层的所有节点。

13.二叉树(Binary Tree):每个节点最多只有两个子节点的树。

14.满二叉树(Full Binary Tree):除叶子节点外,每个节点都有两个子节点的二叉树。

15.完全二叉树(Complete Binary Tree):除了最后一层外,其他层的节点数都是满的,最后一层的节点全部靠左排列的二叉树。

16.平衡二叉树(Balanced Binary Tree):左右子树的高度差不超过1的二叉树。

在这里插入图片描述

二叉搜索树

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
AVL树(平衡二叉树/二叉查找树)

AVL树是一种自平衡的二叉搜索树,它得名于其发明者G. M. Adelson-Velsky和E. M. Landis。AVL树的特点是任何节点的两个子树的高度最多相差1,这使得AVL树在插入和删除节点时能够保持较好的平衡性,从而保证了查找操作的效率。

在AVL树中,每个节点都会存

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏,祝你平安喜乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值