/*
2.給定以下二叉樹:
struct node_t
;要求編寫函式 node_t* foo(node_t *node, unsigned int m, unsigned int k);
輸出以 node 為根的二叉樹第 m 層的第 k 個節點值.
(level, k 均從 0 開始計數)
注意:.此樹不是完全二叉樹;
.所謂的第k個節點,是本層中從左到右的第k個節點
第三題 系統設計題
*/#include using namespace std;
const int max_length = 100;
struct node_t
;node_t *queue[100];
int level = 0; // 記錄第幾層
int count = 0; // 記錄第level層的第幾個結點
int top = -1;
int rear = -1;
bool isqueueempty()
void enqueue(node_t *node)
node_t* dequeue()
void createbitree(node_t **root)
else }
node_t* foo(node_t *node, unsigned int m, unsigned int k)
if (q->left != null)
if (q->right != null)
}level++;
count = 0;
} }cout << "找不到符合的結點" << endl;
return null;
}int main()
(演算法)二叉樹的第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層的總結點數
遍歷求數的葉子結點 public static int leafcount 0 public static int calcleafcount1 node root 先去看他的左子樹的葉子結點,如果裡面左右子樹都為空,則 calcleafcount1 root.left if root.left n...
二叉樹21 二叉搜尋樹的第k個結點
題目 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。思路 這裡的第k大結點就是指按從小到大順序排列後的第k個結點。顯然題目很簡單,搜尋二叉樹按照中序遍歷就是乙個有序的序列,於是中序遍歷這個二叉樹,每次遍歷乙個結點記錄乙個計數...