刪除二叉樹中某一節(jié)點(diǎn) 為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來的二叉排序樹?
為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來的二叉排序樹?二進(jìn)制排序樹只要求每個(gè)節(jié)點(diǎn)的左子級(jí)小于它,右子級(jí)大于或等于它。先看刪除操作:“先將刪除的節(jié)點(diǎn)與最后一個(gè)節(jié)點(diǎn)交換,交換后刪除最
為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來的二叉排序樹?
二進(jìn)制排序樹只要求每個(gè)節(jié)點(diǎn)的左子級(jí)小于它,右子級(jí)大于或等于它。先看刪除操作:“先將刪除的節(jié)點(diǎn)與最后一個(gè)節(jié)點(diǎn)交換,交換后刪除最后一個(gè)節(jié)點(diǎn),然后重建二叉樹”,在這個(gè)過程中,如果刪除根節(jié)點(diǎn)左側(cè)的節(jié)點(diǎn),則在與最后一個(gè)節(jié)點(diǎn)交換后,為了保持二叉排序樹的特性,最后一個(gè)節(jié)點(diǎn)會(huì)逐漸向上移動(dòng),這很可能會(huì)改變根節(jié)點(diǎn)的位置。然后讓我們看看插入操作:“直接與根節(jié)點(diǎn)比較。如果小于根節(jié)點(diǎn),插入左子樹,遞歸一次,選擇合適的節(jié)點(diǎn),如果大于根節(jié)點(diǎn),依此類推。所以平衡二叉樹可能不同。我建議你畫一幅圖,試著操作一下,加深對(duì)這兩種操作的理解!