【Day13】[资料结构]-二元树Binary Tree

二元树(Binary Tree)是最广泛被使用的树状资料结构,简单来说即为每个节点最多只能有两个子节点


树与二元树不同之处

  • 树不能是空集合,二元树可以是空集合。
  • 树的分支度是 d ≥ 0,二元树的分支度是 0 ≤ d ≤ 2。
  • 树的左右没有次序关系,二元树的左右有次序关系。

二元树的种类

  • 完全二元树(Complete Binary Tree)
    一棵二元树中,除了最後一层不是满的,其余层都是满的。
    https://ithelp.ithome.com.tw/upload/images/20210924/20121027aY9Df1to3c.jpg
  • 满二元树(Fully Binary Tree)
    每一层节点数都是最大节点数量。
    https://ithelp.ithome.com.tw/upload/images/20210924/20121027oDkVmp8hX1.jpg
  • 歪斜树(Skewed Binary Tree)
    一棵二元树中,完全没有左边或右边节点,如果集中左边为「左歪斜树」,集中右边为「右歪斜树」。
    https://ithelp.ithome.com.tw/upload/images/20210924/20121027y5kvvQKd6k.jpg

常见二元树的实作方式

  1. 阵列表示法
    根节点放在阵列索引位置 0。
    若父节点索引为 i:
    • 父节点的左子节点,放在阵列索引位置 (2 * i) + 1。
    • 父节点的右子节点,放在阵列索引位置 (2 * i) + 2。
    • 若节点不为根节点,节点的父节点放在阵列索引位置 (i - 1) / 2(取商)。

https://ithelp.ithome.com.tw/upload/images/20210924/20121027qtbTbwxGY8.jpg

阵列的介绍可以参考此篇

  1. 链结串列表示法
    节点含有两个指标,左右指标分别指向左边的子节点右边的子节点
    https://ithelp.ithome.com.tw/upload/images/20210924/20121027MMrsu27ECV.jpg

链结串列的介绍可以参考此篇


<<:  GitHub Account Security - 立刻启用 Two-factor authentication

>>:  【Day24】派一个Spy到网页中窃听—事件监听

AES(高级加密标准)

-密码学 这两种DES(数据加密标准)和AES(高级加密标准)是美国的加密标准。传统 DES 使用...

Day 5. 在设置Unity VR环境时遇到的问题,以及不存在的解法Q

Warning与error直扑而来XDD 蛮头痛的,我目前遇到的有两个问题被回报为Bug。 简单来说...

[Day25] 第二十五章-新增空白的point表单 (跨资料查询还有对应细节)

前言 昨天我们完成了point简单的read 跟route model controll等 今天我们...

找LeetCode上简单的题目来撑过30天啦(DAY16)

ok,今天挑战同一张证照第三次失败了,有够难过的,但至少分述有越来越接近啦,再接再厉罗 题号:55 ...

C# Web API 502 Bad GateWay 问题排解

前情提要 使用HttpClient Post时,碰到API无回应,大约两分钟後出现502 Bad G...