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

2021-09-07 01:38:00 字數 495 閱讀 3933

給定以下二叉樹:

struct node

node *left, *right;

int value;

要求編寫函式 node* foo(node *node, unsigned int m, unsigned int k);

輸出以 node 為根的二叉樹第 m 層的第 k 個節點值.(level, k 均從 0 開始計數)

注意:此樹不是完全二叉樹;

所謂的第k個節點,是本層中從左到右的第k個節點

廣度優先遍歷,即層次遍歷,通過佇列來實現。

struct node;

node* foo(node *proot, unsigned int m, unsigned int k)

total=tqueue.size();

m--;

}if(total>=k)

else

return null;

}

列印二叉樹中第m層第k個節點(遞迴 非遞迴)

前面的文章中已經討論過 層序遍歷二叉樹指定的某層 的問題,在這個基礎上,對 稍作修改,即可完成 列印二叉樹中第m層第k個節點 具體實現如下。說明 根節點位於0層,每層中的第乙個節點的下標為0 所以如果要列印二叉樹中第m層第k個節點 需要傳入的引數分別為 m 1 和 k 1 include using...

求二叉樹第m層上的第K個結點的值

2 給定以下二叉樹 struct node t 要求編寫函式 node t foo node t node,unsigned int m,unsigned int k 輸出以 node 為根的二叉樹第 m 層的第 k 個節點值.level,k 均從 0 開始計數 注意 此樹不是完全二叉樹 所謂的第k...

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

思路 如果樹為空或者k 1,那麼節點個數為0 如果k 1,那麼節點個數為1 如果k 1,那麼第k層 總節點的個數等於 左子樹k 1層的節點個數 右子樹k 1層節點的個數 1 如下 btnumofklevel.cpp 定義控制台應用程式的入口點。include stdafx.h include usi...