資料結構 二叉樹(三)二叉樹的深度

2021-10-03 00:27:32 字數 1055 閱讀 8089

給定一棵二叉樹,求該二叉樹的深度

二叉樹深度定義:從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的節點個數為樹的深度

1.1輸入
第一行是乙個整數n,表示二叉樹的結點個數。二叉樹結點編號從1到n,根結點為1,n <= 10 接下來有n行,依次對應二叉樹的n個節點。

每行有兩個整數,分別表示該節點的左兒子和右兒子的節點編號。如果第乙個(第二個)數為-1則表示沒有左(右)兒子。

1.2輸出
輸出乙個整型數,表示樹的深度

1.3樣例輸入與輸出
樣例輸入

32 3

-1 -1

-1 -1

樣例輸出

2

c

#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 要求函式返回...