演算法基礎 第五章 二叉樹

2021-09-13 02:07:01 字數 1688 閱讀 2208

--詳解遞迴函式完成二叉樹的三種遍歷

--詳解非遞迴函式完成二叉樹的三種遍歷

--詳解二叉樹的序列化和反序列化(深度優先與寬度優先遍歷)

--摺紙問題

--判斷搜尋二叉樹

--判斷完全二叉樹

--判斷平衡二叉樹

--二叉樹節點的前驅節點與後繼節點

1.實現二叉樹的先序、中序、後序遍歷,包括遞迴方式和非遞迴方式

非遞迴:先序:棧  有右先壓右,後壓左。

後序:準備乙個棧。

2.如何直觀的列印一顆二叉樹

數字一樣時方便

3.在二叉樹中找到乙個節點的後繼節點

【題目】現在有一種新的二叉樹節點型別如下:

public class node

}該結構比普通二叉樹節點結構多了乙個指向父節點的parent指標。假設有一棵node型別的節點組成的二叉樹,樹中每個節點的parent指標都正確地指向自己的父節點,頭節點的parent指向null。只給乙個在二叉樹中的某個節點node,請實現返回node的後繼節點的函式。在二叉樹的中序遍歷的序列中,node的下乙個節點叫作node的後繼節點。

節點,有右子樹,這個節點的後繼節點一定是這個子樹最左的節點

無右節點,往上找,直到當前節點是其父親節點的左孩子,那麼該父節點就是原始節點的後繼

4.介紹二叉樹的序列化和反序列化

用檔案格式記錄下來恢復

str 先序遍歷序列化

怎麼序列化就反序列化

層次

5.摺紙問題

【題目】請把一段紙條豎著放在桌子上,然後從紙條的下邊向上方對折1次,壓出摺痕後展開。此時摺痕是凹下去的,即摺痕

突起的方向指向紙條的背面。如果從紙條的下邊向上方連續對折2 次,壓出摺痕後展開,此時有三條摺痕,從上到下依次是下折

痕、下摺痕和上摺痕。給定乙個輸入引數n,代表紙條都從下邊向上方連續對折n次,請從上到下列印所有摺痕的方向。例如:n=1時,列印:down n=2時,列印:down down up

6.判斷一棵二叉樹是否是平衡二叉樹

左子樹右子樹高度差為1

以每乙個節點為頭的都是平衡樹

7.判斷一棵樹是否是搜尋二叉樹、判斷一棵樹是否是完全二叉樹

搜尋二叉樹:任何乙個節點左子樹比它小,右子樹比它大

中序遍歷公升序(不出現重複節點)

完全二叉樹:

任何乙個節點有右孩子沒有左孩子 false

不是左右雙全後面遇到的必須都是葉子節點

8.已知一棵完全二叉樹,求其節點的個數

要求:時間複雜度低於o(n),n為這棵樹的節點個數

1.遍歷左子樹知道深度

2.右子樹是否到最後一層,左樹滿,公式,右樹遞迴

3.沒到最後一層,右樹滿

第五章樹和二叉樹

樹的邏輯結構 在樹中常常將資料元素稱為結點。任意一棵非空樹滿足以下條件 1 有且僅有乙個特定的稱為根的結點 2 當n 1時,除根結點之外的其餘節點被分成m m 0 個互不相交的有限集合t1,t2.tm,其中每個集合又是一棵樹,並稱為根節點的子樹。樹的定義是遞迴的。結點的度 某結點所擁有的子樹的個數 ...

第五章 樹和二叉樹

5.1 樹的邏輯結構 樹的定義 n n 0 個結點的有限集合。當n 0時,稱為空樹 任意一棵非空樹滿足以下條件 有且僅有乙個特定的稱為根的結點 當n 1時,除根結點之外的其餘結點被分成m m 0 個互不相交的有限集合t1,t2,tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。樹的基本術語 結點...

第五章樹和二叉樹

結點的度 結點所擁有的子樹的個數。樹的度 樹中各結點度的最大值。葉子結點 度為0的結點,也稱為終端結點。分支結點 度不為0的結點,也稱為非終端結點。結點所在層數 根結點的層數為1 對其餘任何結點,若某結點在第k層,則其孩子結點在第k 1層。樹的深度 樹中所有結點的最大層數,也稱高度。層序編號 將樹中...