思路:
如果樹為空或者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...