C 演算法之 求二叉樹第k層的節點的個樹

2021-06-28 01:34:01 字數 907 閱讀 1677

思路:

如果樹為空或者k< 1,那麼節點個數為0;

如果k=1,那麼節點個數為1;

如果k>1,那麼第k層 總節點的個數等於 左子樹k-1層的節點個數+右子樹k-1層節點的個數+1

**如下:

// btnumofklevel.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include using namespace std;

class btree

};//二叉樹的插入實現

void insert(int value, btree* &root)

else if(value < root->m_nvalue)

insert(value,root->m_pleft);

else if(value > root->m_nvalue)

insert(value,root->m_pright);

else

;}int getnumofkthlevel(btree* root, int k)

int _tmain(int argc, _tchar* argv)

{ btree* m_proot = new btree(4);

insert(3,m_proot);

insert(6,m_proot);

insert(1,m_proot);

insert(2,m_proot);

insert(5,m_proot);

insert(8,m_proot);

insert(7,m_proot);

insert(10,m_proot);

int number = getnumofkthlevel(m_proot,4);

cout<<"第4層上的節點的個數為:"<

(演算法)二叉樹的第m層第k個節點

給定以下二叉樹 struct node node left,right int value 要求編寫函式 node foo node node,unsigned int m,unsigned int k 輸出以 node 為根的二叉樹第 m 層的第 k 個節點值.level,k 均從 0 開始計數 ...

求二叉樹葉子節點的個數 求二叉樹第k層的節點個數。

include using namespace std template struct binarytreenode t data binarytreenode left binarytreenode right template class binarytree 建構函式 binarytree c...

求二叉樹第n層節點數

我的解法採用遞迴的思想,從0層開始,逐層往下遞迴。然後達到遞迴終止條件時 cur goal 1 就會把n 1層的所有兒子數都統計上來,如下 1 int countchildnum tree t,intn 2 910 cur 遞迴到的當前層,goal 目標層 11int countchild tree...