二叉樹及其實現

2021-06-26 01:49:40 字數 700 閱讀 8469

樹概念:

節點n1到nk的路徑:為節點n1、n2、...、nk的乙個序列,是的對於1<=i

路徑的長:路徑上邊的條數,如上面為k-1;

ni的深度:從根到ni的唯一路徑的長。根的深度為0;

ni的高度:從ni到一片葉子的最長路徑的長。樹葉的高度為0,一棵樹的高度等於根的高,(通常定義空樹的高為-1)。

二叉樹的節點宣告:

typedef struct bitnodebitnode,*bitree;

注:二叉樹的建立採用「先序遞迴」的方式。

注:先序非遞迴遍歷有三種方式:

第一種為根壓棧,迴圈{左孩子壓棧,右孩子壓棧}; 

第二種為先根壓棧,然後{左子樹中所有左孩子全部壓棧,然後再右孩子壓棧}。

中序非遞迴遍歷:兩種方法差不多。

後序非遞迴遍歷:

方法一:根壓棧,{左子樹所有左孩子壓棧,然後右子樹壓棧(但是根在左右子樹出棧後再出棧)};

方法二:雙棧法:棧s1做緩衝,棧s2先壓進s1出棧的根,再壓進s1出棧的右子樹,再壓進s1出棧的左子樹,這樣s2輸出時就為後序非遞迴遍歷。

包含了二叉樹的非遞迴層次遍歷。

二叉樹的遞迴層次遍歷:

輕鬆搞定面試中的二叉樹題目:

未完待續...

資料結構筆記 二叉樹及其實現 python

二叉樹是一種最簡單的樹形結構,其特點是樹中每個結點至多關聯到兩個後繼結點,也就是,乙個節點可以關聯到的結點可以為0,1,2,這也是二叉樹乙個節點度的定義,另乙個特點是結點關聯的後繼結點明確的分左右,一般有乙個根結點,然後根結點的左右後繼結點分別稱為根結點的左,右孩子,或者左,右關聯結點。二叉樹是結點...

二叉樹及其應用 二叉樹遍歷

給定二叉樹的廣義表表示,構造二叉樹並輸出二叉樹的四種遍歷順序。輸入說明 輸入僅一行,該行僅由 以及大小寫字元構成的二叉樹的廣義表表示,字串長度不超過100。輸出說明 在接下來的四行中依行輸出二叉樹的四種遍歷 輸入樣列 a b d,c e,f h 輸出樣列 abdcefh dbaecfh dbehfc...

二叉樹及其應用 二叉樹建立

給定二叉樹的資料型別如下 typedef char element struct node typedef struct node btnode typedef struct node btree 二叉樹建立i 完成btree create btree char s 函式,該函式由字串s建立一顆二叉...