From b40c4ebd88c5a030a41f62cbac7000ca2e8b1bf9 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 19 Jan 2022 11:29:31 +0800 Subject: [PATCH] =?UTF-8?q?[docs=20update]=E4=BF=AE=E8=AE=A2=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E8=8A=82=E7=82=B9=E6=B7=B1=E5=BA=A6=E7=9A=84=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/cs-basics/data-structure/树.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/cs-basics/data-structure/树.md b/docs/cs-basics/data-structure/树.md index 34f7d49d..2c8491ae 100644 --- a/docs/cs-basics/data-structure/树.md +++ b/docs/cs-basics/data-structure/树.md @@ -31,13 +31,17 @@ tag: - **节点的层数** :节点的深度+1。 - **树的高度** :根节点的高度。 +> 关于树的深度和高度的定义可以看 stackoverflow 上的这个问题:[What is the difference between tree depth and height?](https://stackoverflow.com/questions/2603692/what-is-the-difference-between-tree-depth-and-height) 。 + ## 二叉树的分类 **二叉树**(Binary tree)是每个节点最多只有两个分支(即不存在分支度大于 2 的节点)的树结构。 **二叉树** 的分支通常被称作“**左子树**”或“**右子树**”。并且,**二叉树** 的分支具有左右次序,不能随意颠倒。 -**二叉树** 的第 i 层至多拥有 `2^(i-1)` 个节点,深度为 k 的二叉树至多总共有 `2^k-1` 个节点 +**二叉树** 的第 i 层至多拥有 `2^(i-1)` 个节点,深度为 k 的二叉树至多总共有 `2^(k+1)-1` 个节点(满二叉树的情况),至少有 2^(k) 个节点(关于节点的深度的定义国内争议比较多,我个人比较认可维基百科对[节点深度的定义](https://zh.wikipedia.org/wiki/%E6%A0%91_(%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)#/%E6%9C%AF%E8%AF%AD))。 + +![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/image-20220119112736158.png) ### 满二叉树