二叉樹及其表示 1 遍歷

2021-07-27 15:31:01 字數 1046 閱讀 8920

正如我們所知,在陣列和鍊錶的資料結構裡面,元素之間都存在乙個自然的線性次序,故它們都屬於所謂的線性結構。樹則不然,其中的元素之間並不存在天然的直接後繼或者直接前驅,但是如果我們附加某種約束,也可以在樹中的元素之間確定某種線性次序,因此數屬於半線性結構。

有根數

從圖論的角度來看,樹等價於連通無環圖。因此與一般的圖相同,樹也是由一組頂點以及聯接與其間的若干條邊(edge)組成,我們一般還會指定某一特定的頂點,並稱之為(root)。在指定根節點之後,我們也稱之為有根樹(rooted tree)。

深度與層次

沿每個節點v到根r的唯一通路所經過邊的數目,稱作v的深度(depth)。我們約定根節點的深度為depth(r)=0,故屬於第0層。樹t中所有節點深度的最大值稱為稱作該樹的高度(height),記作height(t)。某一節點v的孩子總數,稱其為度數或者度。無孩子的節點被稱為葉子節點。下面我們來看一道leetcode(num:104),求maximum depth of binarytree,在這道leetcode裡面,需要注意的是,空樹的深度為0,這裡和鄧俊輝老師的教材裡面的約定不一樣:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

};

這道題實際上就是求樹的高度,我們試著畫出遞迴追蹤圖:

二叉樹

二叉樹,顧名思義,樹中每個節點的度數均不超過2。因此在二叉樹中,同一父節點的孩子都可以以左,右相互區分,此時,亦稱作有序二叉樹(ordered binary tree)。特別地,不含一度節點的二叉樹稱為真二叉樹。

二叉樹的遍歷

二叉樹的遍歷應該學習的重點,就像對向量和鍊錶的遍歷一樣,

重學演算法(1) 遍歷二叉樹

1 public class treewhere t icomparable2 2021 22 資料節點屬性 23 24public t nodedata 2527 set 28 2930 public treelefttree 3133 set 34 3536 public treerighttr...

資料結構 二叉樹(1)遍歷,建立,應用

學了幾章的資料結構,我發現每一章對結構的闡述都會有以下三個步驟 1.先定義資料結構和基本操作。就是所謂的抽象,把像的總體特徵抽出來,有的也會去歸納出結構的性質。2.資料結構的儲存,一般分為順序儲存結構和鏈式儲存結構。3.根據儲存結構來建立資料結構和給出實現各種操作的演算法。同樣對二叉樹的總結,我也用...

資料結構實驗之二叉樹二 遍歷二叉樹

time limit 1000ms memory limit 65536k 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方式遍歷該二叉樹。連續輸入多組資料,每組資料輸入乙個長度小於50個字元的字串。每組輸入資料對應輸出2行 第1行輸出...