計算二叉樹的深度和元素個數 C 實現

2021-10-08 13:10:43 字數 732 閱讀 2508

1.計算二叉樹的深度。可以這樣理解,我們可以去查詢根節點的左子樹的深度和其右子樹的深度,然後比較這兩個誰大。如果

左子樹的深度大於右子樹,那麼我們可以把左子樹的深度加1就是整個樹的深度,相反如果右子樹的深度大於左子樹的深度,

那麼可以把右子樹的深度加1表示是整個樹的深度。按照這個思想,我們可以再把如何求左子樹的深度也分成求左子樹的左

子樹的深度和其右子樹的深度,然後比較出那個深度大,讓其加1就是左子樹的深度了。所以這個求其深度的問題就是乙個

遞迴的演算法了。下面是c++演算法:

166

template

<

typename t>

int linkedbinarytree

::height

(binarytreenode

*t)

2.求整個數的所有節點個數,其實就是遍歷整個樹,然後把遍歷的輸出變成將元素個數加一就好了,下面是**:
//利用前向遍歷去計算個數,其中count是類linkedbinarytree的乙個保護成員

111template

<

typename t>

void linkedbinarytree

::preorder

(binarytreenode

*t)117

}

計算二叉樹的深度

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的深度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...

計算二叉樹的個數

給定二叉樹的節點個數來計算能夠構成多少種不同的二叉樹。採用的是遞迴的思想來解決這類問題。1 因為採用遞迴的思想,我們的結束條件就是當節點個數為0.此時節點個數為0的情況,這時候構成的樹的情況為空樹,即二叉樹的個數是1.2 因為是二叉樹,我們只需要分為兩邊來計算。即滿足這樣的條件,從根節點下來,能夠成...

二叉樹的深度 二叉樹的深度

題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...