二叉樹習題整理(一)

2021-09-29 13:07:38 字數 548 閱讀 9966

編寫遞迴演算法,在二叉樹中求位於先序序列中第k個位置的結點的值

宣告乙個order用來計數,先序遍歷,每遍歷乙個結點order+1,然後判斷k是否等於order,等於則將結點的值域賦給e

status t641

(bitree t,telemtype *e,

int*order,

int k)

else

}return error;

}

編寫遞迴演算法,計算二叉樹中葉子結點的數目

葉子結點的特點是沒有子結點,可以遍歷二叉樹然後每個結點判斷是否滿足條件,滿足則加一;這個**段是先序遞迴。

status t642

(bitree t)

}return count;

}

編寫遞迴演算法,將二叉樹中所有結點的左右子樹相互交換

**非常簡單,不做過多解釋

void

t643

(bitree t)

二叉樹習題整理(二)

編寫遞迴演算法,求二叉樹中以元素值為x的結點為根的子樹的深度 先遞迴找出x的位置,用p指向,然後找到子樹的深度 求樹的深度的思路 1 如果樹為空,則深度為0 2 如果樹不是空,那麼深度是左子樹的深度 1或右子樹的深度 1 int t644 bitree t,telemtype x bitree lo...

二叉樹習題之重建二叉樹

對於給定前序和中序的重建方法。1 前序的第乙個元素一定是樹的根節點,在中序集合中找到此元素,那麼該元素的左面即為根的左子樹,右面為右子樹。2 找到前序的第二個元素,重複上面的步驟。自寫程式的效率大概為 n n 2 或最大的那個元素 這點很坑,斟酌改掉 目前沒發現更快的寫法 自己寫 結果以連續記憶體的...

二叉樹整理(五)

二叉樹前序遍歷序列中,第乙個元素總是樹的根節點的值。中序遍歷序列中,左子樹的節點的值位於根節點的值的左邊,右子樹的節點的值位 於根節點的值的右邊。遞迴解法 1 如果前序遍歷為空或中序遍歷為空或節點個數小於等於0,返回null。2 建立根節點。前序遍歷的第乙個資料就是根節點的資料,在中序遍歷中找到根節...