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

2021-06-18 10:44:15 字數 904 閱讀 8470

/*

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個結點。顯然題目很簡單,搜尋二叉樹按照中序遍歷就是乙個有序的序列,於是中序遍歷這個二叉樹,每次遍歷乙個結點記錄乙個計數...