1. 程式人生 > >二叉樹主要知識點總結

二叉樹主要知識點總結

1.二叉樹第i層至多有2^(k-1)個結點(i>=1)。
2.深度為k的二叉樹上,至多含2^k-1個結點(k>=1)
3.n0 = n2 + 1(度)
4.滿二叉樹:深度為k且含有2^k-1個結點的樹。
5.完全二叉樹:除最後一層外,每一層上的節點數均達到最大值;在最後一層上只缺少右邊的若干結點。
(樹中所含n個結點和滿二叉樹中編號為1至n的結點一一對應)。
6.具有n個結點的完全二叉樹的深度為[log2n] + 1。
7.二叉樹的鏈式儲存表示:二叉連結串列、三叉連結串列(增加雙親指標域)、雙親連結串列、 線索連結串列。
8.二叉樹的遍歷:前、中、後。
9二叉樹的遍歷演算法:遞迴、非遞迴(棧:現在經過不訪問,一會訪問的結點入棧,棧空結束遍歷)。
10.二叉樹遞迴遍歷引申的演算法:求樹的深度、結點個數、複製二叉樹等。
11.二叉樹相關演算法一定要考慮空樹的情況。
13.表示式和二叉樹的關係: [第一運算元][二元運算子][第二運算元] = [左節點][雙親結點][右結點],
(先中後)綴對應(前中後)遍歷。
14.線索二叉樹:二叉連結串列中增加兩個標誌域,讓左右兩個指標增加功能:有子結點則指向子結點,沒有則指向前驅和後繼(某種遍歷方式)。
15.樹和二叉樹的相互轉換,樹的葉子結點:左子樹空。

樹、森林與二叉樹的轉換
16.遍歷二叉樹的所有葉子節點。
17.樹的儲存結構
18.哈夫曼樹
19.平衡二叉樹:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

相關推薦

主要知識點總結

1.二叉樹第i層至多有2^(k-1)個結點(i>=1)。 2.深度為k的二叉樹上,至多含2^k-1個結點(k>=1) 3.n0 = n2 + 1(度) 4.滿二叉樹:深度為k且含有2^k-1個結點的樹。 5.完全二叉樹:除最後一層外,每一層上

遍歷總結

struct left else oot nor 節點 操作 preorder AC   節點定義如下 1 // Definition for a binary tree node. 2 struct TreeNode { 3 int val; 4 Tre

相關知識總結

是否 integer string 根節點 color ast creat postorder ray 二叉樹的Java實現 一、分析 一個二叉樹節點包含三個部分,分別是,指向左子樹的部分,指向右子樹的部分,數據部分,如下圖所示: 我們是否可以將每個節點都抽象為一個

code】總結

struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };

基礎知識總結

一、樹的定義 樹是一種資料結構,它是由n(n>=1)個有限結點組成一個具有層次關係的集合。 樹具有的特點有: (1)每個結點有零個或多個子結點 (2)沒有父節點的結點稱為根節點 (3)每一個非根結點有且只有一個父節點 (4)除了根結點外,每個子結點可以分

面試題總結(Java)

本文參考部落格:http://www.jianshu.com/p/0190985635eb 先上二叉樹的資料結構: class TreeNode{ int val; //左孩子 TreeNode left; //右孩子 TreeNo

常見演算法總結-基本

二叉樹是最經典的資料結構之一,其結構型別和演算法操作也是十分多,今天來做一個總結(今天先不討論對B樹,紅黑樹那種比較高階的資料結構)。 樹結構,一般用節點引用兩個子節點作為左右節點。結構程式碼如下 PS:有些時候也要有個指

、森林與的轉換總結

前言:   在樹這一塊的資料結構中最重要的就是二叉樹,但是對於我們大部分人來說二叉樹的基礎掌握還是ok的,但是有時候我們也會忽略了樹於森林(本人就是忽略了),今天就在這裡總結總結數、森林與二叉樹的轉換

入門個人總結

二叉樹是pat高頻考點,最近做了幾道入了個門,簡單總結下。(水平有限,大神繞道) 一、二叉樹 最典型的就是已知前序中序建樹或已知後序中序建樹,接著再後序或前序或層序遍歷。難點主要在於建樹。代表題目

遍歷總結(先序||中序||後序||按層遍歷||之字遍歷&&遞迴||非遞迴)

先序遍歷:8 6 5 7 10 9 11 後序遍歷:5 7 6 9 11 10 8 中序遍歷:5 6 7 8 9 10 11 按層遍歷:8 6 10 5 7 9 11 之字遍歷:8 10 6 5 7

【資料結構】面試題總結

為了對二叉樹的知識進行鞏固,今天我們來解析5道二叉樹的經典面試題。 這五道面試題如下: 求二叉樹中最遠兩個結點的距離; 判斷一棵樹是否是完全二叉樹; 由前序和中序遍歷序列重建二叉樹 (前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6

數據結構知識點總結

高度 總結 每一個 數據結構 後序 bsp 總數 結構 如果 術語 1. 節點的度:一個節點含有的子樹的個數稱為該節點的度; 2. 葉節點或終端節點:度為零的節點; 3. 非終端節點或分支節點:度不為零的節點; 4. 父親節點或父節點:若一個節點含有子節點,則

遍歷算法總結

使用 preorder 說明 stack height type pri content 結構圖 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

基本數據結構學習總結的遍歷

root 取出 後序 二叉 isnull 就是 bre 遞歸 use 二叉搜索樹的遍歷 二叉樹遍歷的內容很多,但是也是最重要的,最需要理解的,很多二叉樹的相關算法,只要用活了遍歷就沒有問題了 前序遍歷 對於每一棵樹,先遍歷其根節點,然後遍歷其左子樹,最後用同樣的方式遍歷

演算法總結-的深度優先搜尋

1 遍歷的問題 二叉樹的前序遍歷 http://www.lintcode.com/zh-cn/problem/binary-tree-preorder-traversal/ 二叉樹的中序遍歷 http://www.lintcode.com/zh-cn/problem/b

構建、新增、刪除和遍歷總結

敬請關注部落格,後期不斷更新優質博文,謝謝 原始碼: ------------------------------------------------------------------------------------ Node.java:

(轉載)知識總結

二叉樹是筆試中常考的題目,以下是蒐集網上的優秀解釋文章。 一、樹的定義 樹是一種資料結構,它是由n(n>=1)個有限結點組成一個具有層次關係的集合。   樹具有的特點有: (1)每個結點有零個或多個子結點 (2)沒有父節點的結點稱為根節點

[演算法總結] 20 道題搞定 BAT 面試——

本文首發於我的個人部落格:尾尾部落 0. 幾個概念 完全二叉樹:若二叉樹的高度是h,除第h層之外,其他(1~h-1)層的節點數都達到了最大個數,並且第h層的節點都連續的集中在最左邊。想到點什麼沒?實際上,完全二叉樹和堆聯絡比較緊密哈~~~ 滿二叉樹:除最後一層外,每一層上的所有節點都有兩個子節點,最後一層

[] 遍歷方法總結--遞迴與非遞迴--純C實現

非遞迴方法: 思路一:根據訪問次序來入棧並輸出 思路二:模擬訪問過程 思路三:使用識別符號mark來記錄已經第幾次訪問該結點 /* @Desc:二叉連結串列 無頭結點 @Vesrion:0.0.1 @Time:20180922建立 */ #include

簡單總結

一,二叉樹的定義 二叉樹是一種特殊形式的樹結構,二叉樹的特點是每個節點最多有兩棵子樹。 二叉樹(Binary tree )是這樣的數結構:它或者是空,或者是由一個根節點加上兩棵分別稱為左子樹和右子樹的互不相交的二叉樹組成。顯然這個定義是遞迴形式的。 二叉樹的一般儲存結構