moea_joint_essay
109年
[統計資訊] 資料庫及資料探勘、程式設計
第 五 題
請於下方標示之【待填入程式區塊】中,以 6 行內為限填入虛擬程式碼(pseudo-code),實現將二元樹(以鏈結串列方式儲存)中每一節點的左子樹、右子樹皆調換之功能(示意如下,交換前二元樹如【圖 1】,交換後二元樹如【圖 2】,以 t 表示父節點之指標,t->leftchild表示 t 的左子節點指標,t->rightchild 表示 t 的右子節點指標)。(15 分)
Swaptree ( t pointer)
{
if ( t <> NULL) then
{
【待填入程式區塊】
}
} /* Swaptree 函式結尾
Swaptree ( t pointer)
{
if ( t <> NULL) then
{
【待填入程式區塊】
}
} /* Swaptree 函式結尾
📝 此題為申論題
思路引導 VIP
樹的反轉需要遍歷每一個節點,利用遞迴分別呼叫左右子樹,再利用一個暫存指標將當前節點 t 的 leftchild 和 rightchild 進行交換即可。