日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

植物大战 二叉树 概念——C

發布時間:2023/12/8 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 植物大战 二叉树 概念——C 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

“人生如夢,一樽還酹江月”

猛戳訂閱🍁🍁 👉 純C詳解數據結構專欄 👈 🍁🍁

這里是目錄

  • 普通樹的概念
    • 樹的特點
    • 樹的術語
    • 普通樹的表示
  • 二叉樹概念
    • 二叉樹的性質
  • 數組二叉樹
  • 鏈式二叉樹
    • 學鏈式二叉樹的什么內容?
    • 二叉樹的遍歷
    • 前序遍歷
    • 中序遍歷
    • 后序遍歷
    • 層序遍歷

普通樹的概念

樹由 根 和 n 棵子樹組成,樹是非線性數據結構。樹是遞歸定義的,這點很重要。

樹的特點

1.樹的子樹是不相交的。
2.除了根節點外,每個結點有且僅有一個父節點。
3.一棵N個節點的樹有N-1條邊。

樹的術語

以下加粗的為重點

樹的度:一棵樹中,最大的節點的度稱為樹的度

節點的層次:從根開始定義起,根為第一層,根的子節點為第二層。

數的高度或深度:樹中節點的最大層次。

節點的度:一個節點含有的子樹的個數成為該節點的度。

葉節點或終端節點:度為0的節點稱為葉節點;

雙親節點或父節點:若一個節點含有子節點,則這個節點稱為其子節點的父節點。

孩子節點或子節點:一個節點含有的子樹的根節點稱為該節點的子節點。

兄弟節點:具有相同父節點點節點稱為兄弟節點。親兄弟才是兄弟節點。

堂兄弟節點:雙親在同一層的節點護衛堂兄弟。

節點的祖先:從根到該節點所經分支上的所有節點。

子孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。

森林:有m(m > 0)棵互不相交的數的集合稱為森林。

普通樹的表示

來看看先輩們創造的優秀智慧。
存儲樹最優秀的結構:孩子兄弟表示法
即:一個節點有多少個孩子都無所謂。父親指向第一個孩子,剩下的孩子,用孩子的兄弟指針連接起來。

typedef int DataType; struct Node {struct Node* _firstChild1; // 第一個孩子結點struct Node* _pNextBrother; // 指向其下一個兄弟結點DataType _data; // 結點中的數據域 };

二叉樹概念

二叉樹是我們要研究的重點。

二叉樹:一棵二叉樹是結點的一個有限集合。
該集合有兩種情況。
1.為空樹
2.由一個根節點加上兩棵別稱為左子樹和右子樹的二叉樹組成

二叉樹的特點
1.二叉樹的度最大為2,即最多只有兩顆子樹。
2.二叉樹的子樹有有左右之分,次序不能顛倒,因此二叉樹是有序樹。
注意:因為二叉樹是遞歸定義的
對于任意的二叉樹都是由以下幾種情況復合而成的

二叉樹的性質

二叉樹的性質是建立在兩種特殊的二叉樹上研究的。

1.滿二叉樹:每一層的結點數都達到了最大值。
2.完全二叉樹:前k-1層都是滿的,最后一層不滿,但是最后一層從左往右是連續的。

性質1:若規定根節點的層數為1,則一棵非空二叉樹的第h層上最多有 2h-1個結點.

性質2:若規定根節點的層數為1,則深度為h的二叉樹的最大結點數是 2h-1 .
解釋:根據等比數列前n項的和來看,n層相加得到2h-1

性質3:對任何一棵二叉樹, 如果度為0其葉結點個數為n0 , 度為2的分支結點個數為n2 ,則有 n0=n2 +1

性質4:若規定根節點的層數為1,具有n個結點的滿二叉樹的深度,h= log2(n+1).
解釋:這是對2h-1 = n公式的轉換。

性質5:對于具有n個結點的完全二叉樹,如果按照從上至下從左至右的數組順序對所有節點從0開始編號,則對
下標為i的結點有以下解釋:

1.i位置節點的雙親下標:(i-1)/2
2.左孩子下標:2i+1
3.右孩子下標:2i+2

如圖。

數組二叉樹

上一章的堆,已經敘述。

  • 順序存儲
    順序結構存儲就是使用數組來存儲,一般使用數組只適合表示完全二叉樹,因為不是完全二叉樹會有空間的浪費。而現實中使用中只有堆才會使用數組來存儲。二叉樹順序存儲在物理上是一個數組,在邏輯上是一顆二叉樹。
  • 鏈式二叉樹

    學鏈式二叉樹的什么內容?

    普通二叉樹增刪查改沒有價值,如果是為了單純存放數據,不如用線性表。我們現在學習二叉樹,1.是為了更好的控制他的結構,為后續學習復雜的搜索二叉樹打基礎
    包括平衡搜索二叉樹:AVL數、紅黑樹。學習搜索二叉樹的意義在于可以用于搜索.
    2.很多二叉樹OJ算法題,都出在普通二叉樹上。

    二叉樹的遍歷

    二叉樹是遞歸實現的
    思想

    • 當你看到一棵樹就要有一個思想,要把樹看成遞歸的,這點很重要。
    • 任何一棵樹都要分為根,左子樹,右子樹。并且左右子樹到空才算結束。
    • 遞歸就是大問題分成小問題,一直分解,直到不可分割后,就結束遞歸了。

    前序遍歷

    也叫先根遍歷,遍歷方式是, 根,左子樹,右子樹,根可以直接遍歷,左子樹和右子樹不可以直接遍歷,左子樹還會繼續分為根, 左子樹, 右子樹。

    1 2 3 null null null 4 5 null null 6 null null

    中序遍歷

    也叫中根遍歷,遍歷方式是:左子樹, 根, 右子樹

    null 3 null 2 null 1 null 5 null 4 null 6 null

    后序遍歷

    遍歷方式為:左子樹, 右子樹, 根

    null null 3 null 2 null null 5 null null 6 4 1

    層序遍歷

    最簡單的遍歷,就是一層一層的遍歷。

    1 2 4 3 5 6

    總結

    以上是生活随笔為你收集整理的植物大战 二叉树 概念——C的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。