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