二叉樹的結點數

2021-10-16 09:43:32 字數 788 閱讀 6400

二叉樹的結點數(*) (10分)

已知二叉樹的結點結構定義如下:

typedef struct _node_

node;

說明:data為資料域,均為英文大寫字母。lchrch分別為指示左、右孩子的指標。

請編寫函式,求二叉樹的結點個數。

函式原型

// 結點數

int bintreenumnode(const tnode *root);

說明:root為二叉樹或它的子樹的根指標,函式值為二叉樹的結點數。

裁判程式

int main()

說明:bintreecreate 函式建立空二叉樹,bintreedestroy 函式銷毀二叉樹。bintreeinput 函式按先根遍歷順序輸入二叉樹,結點值均為大寫英文本母,遇到空樹時,輸入「#」。

輸入樣例

eibj##h###df#a##g#c##
輸出樣例

10
int bintreenumnode(const tnode *root) else

}

完全二叉樹結點數

222.完全二叉樹的節點個數 給你一棵完全二叉樹的根節點 root 求出該樹的節點個數。完全二叉樹的定義如下 在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1 2h 個節點。示例 輸入 ro...

二叉樹的雙分支結點數

二叉樹的雙分支結點個數 思路 在先序遍歷的基礎上修改 include include include using namespace std const int maxsize 100 typedef char elemtype typedef struct bitnode bitree 建立二叉樹...

二叉樹 完全二叉樹的節點數

給定一棵完全二叉樹 最後一層所有節點都在最左側,其餘所有層節點數都為2 h 求其節點數。最簡單的方法就是遍歷一遍,把節點數加起來,但時間複雜度太高。以最左邊的路徑長作為二叉樹的高度,對於乙個節點,如果左子樹高度和右子樹高度一樣,說明左子樹為滿二叉樹,此時把其左子樹的節點數計算出來,加入總數,對右子樹...