二叉樹的大小是指樹中存在的節點的數量。例如,
下面這棵二叉樹的大小是5。
我們定義 size(tree) 函式用來遞迴地計算二叉樹 tree 的大小,它的工作原理如下
二叉樹的大小 = 1 + 左子樹的大小 + 右子樹的大小
algorithm:
size(tree)1. 如果 tree 為空,則返回0
2. 否者
(a) 通過遞迴地呼叫 size(tree.left) 獲取左子樹的大小
(a) 通過遞迴地呼叫 size(tree.right) 獲取右子樹的大小
(c) 用如下公式求出二叉樹的大小:
size(tree) = size(left) + size(right) + 1
(d) 返回 size(tree)
#include
#include
/** 二叉樹節點包含資料域,指向左子樹的指標,指向右子樹的指標
*/
structnode ;
/** 輔助函式
* 使用給定的資料生成二叉樹節點,節點的左子樹和右子樹均為空
*/
struct node* newnode(int data)
* 計算二叉樹中節點數*/int size(struct node*node)
intmain()
二叉樹計算
術語 1.節點的度 乙個節點含有的子樹的個數稱為該節點的度 2.葉節點或終端節點 度為零的節點 3.非終端節點或分支節點 度不為零的節點 4.父親節點或父節點 若乙個節點含有子節點,則這個節點稱為其子節點的父節點 5.兄弟節點 具有相同父節點的節點互稱為兄弟節點 6.節點的層次 從根開始定義起,根為...
二叉樹的計算
二叉樹是一種典型的非線性結構,如果在乙個資料結構中,每個節點只能有乙個父節點但是可以有多個子節點,這樣的資料結構我們就把它稱為樹,如果我們再加乙個規定,每個父節點最多只有2個子節點的話,那麼這樣的樹我們就把它稱為二叉樹。既然剛才說了二叉樹乙個節點下最多只有2個子節點,那就意味著對於二叉樹中的任意乙個...
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...