三个字母了解二叉树的三种遍历(简单概念)

什么是二叉树

二叉树是非常实用的一种数据结构,能大大提高数据的存储和搜索效率。二叉,顾名思义,一个节点,最多有两个子节点,一个在左,一个在右。

1. 满二叉树

每一层所有节点都有两个子节点,直到最后一层。当层数相同时,满二叉的节点数达到最大值,一共有 S = 2^n - 1 个。
在这里插入图片描述
在这里插入图片描述

2. 完全二叉树

一颗二叉树中,除最后一层外其余层都是满的,最后一层要么是满的,要么在右边缺少连续若干节点(因为加node的顺序是从左到右)。总节点数 S 介于n层全满2^n -1 和 n-1层全满加上n层至少有一个 2^(n-1) - 1+1 = 2^(n-1) 之间, 2^(n-1) <= S <= 2^n - 1 个。
在这里插入图片描述

3. 平衡二叉树

又称为AVL树,对于二叉树的任意节点,两个子树高度差被称为它的平衡因子,当二叉树的每个节点的平衡因子都是0,-1,或1时,才能称为标准的AVL树。如下图是一颗典型的AVL树,就像天平,两边要等重,每个节点旁都标记了平衡因子用红色数字表示:
在这里插入图片描述
只要任何一个点的平衡因子不是-1, 0, 1, 都不是AVL树,如下图:
在这里插入图片描述

4. 二叉查找树

。。。

5. 红黑树

。。。

三个字母了解二叉树的三种遍历

遍历二叉树的方法主要有三种:先序遍历,中序遍历,后续遍历。

如下图,有一个节点用D 表示,它的左子树用 L 表示,右子树用 R 表示,一般产生树的节点过程都是从上到下,从左到右,所以就照我们所认知的这个顺序来看就是先序遍历:先 D, 再 L, 再 R,简称 DLR

先序遍历:DLR; (D在前)
中序遍历:LDR; (D在中)
后序遍历:LRD; (D在后)

在这里插入图片描述
我在google的时候参考了两篇关于二叉树的文章,我觉得算是写的比较简单明了的,也有code可参考,分享给大家,链接如下:
1. 二叉树的分类
2. Python二叉树的三种遍历方式

下篇:以list形式print出先序遍历,中序遍历,后续遍历二叉树 (因为刷leetcode的时候先刷到了中序遍历,然后就顺便把三种遍历都找出来用同一支code都跑了一遍)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

没意思不好玩我不玩了

您的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值