給定一棵二叉樹,求該二叉樹的深度1.1輸入二叉樹深度定義:從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的節點個數為樹的深度
第一行是乙個整數n,表示二叉樹的結點個數。二叉樹結點編號從1到n,根結點為1,n <= 10 接下來有n行,依次對應二叉樹的n個節點。1.2輸出每行有兩個整數,分別表示該節點的左兒子和右兒子的節點編號。如果第乙個(第二個)數為-1則表示沒有左(右)兒子。
輸出乙個整型數,表示樹的深度1.3樣例輸入與輸出
樣例輸入c32 3
-1 -1
-1 -1
樣例輸出
2
#include
#include
typedef
struct node
node;
node tree[11]
//計算二叉樹深度:主要策略是遍歷所有葉子節點,通過確定最後一行來計算深度
intdepth
(int root)
intmain()
本題的主要策略是遍歷所有葉子節點,通過確定最後一行來計算深度。
示例圖如下:
首先我們建立乙個二叉樹,把所有資料錄入進去。然後遍歷尋找最後一排的葉子結點。
通過比較的演算法可以找到最後一排,通過逐步計算(遞迴),可以算出二叉樹的深度。
二叉樹學習(三) 二叉樹遍歷
二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問樹中所有結點,使得每個結點被訪問依次且僅被訪問一次。其中訪問代表對該結點的資料的操作,這裡我們可以認為就是直接列印該結點的資料。二叉樹遍歷演算法的基礎是遞迴。若二叉樹為空,則空操作返回。否則先訪問根結點,然後前序遍歷左子樹,再前序遍歷右子樹。先訪問,...
資料結構 二叉樹 反轉二叉樹
include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...
資料結構二叉樹的深度
6 8 求二叉樹高度 20 point s 本題要求給定二叉樹的高度。int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回...