二叉搜索樹刪除節(jié)點(diǎn) 為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來(lái)的二叉排序樹?
為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來(lái)的二叉排序樹?二進(jìn)制排序樹只要求每個(gè)節(jié)點(diǎn)的左子級(jí)小于它,右子級(jí)大于或等于它。先看刪除操作:“先將刪除的節(jié)點(diǎn)與最后一個(gè)節(jié)點(diǎn)交換,交換后刪除最
為什么刪除二叉排序樹中一個(gè)結(jié)點(diǎn),再重新插入上去,不一定得到原來(lái)的二叉排序樹?
二進(jìn)制排序樹只要求每個(gè)節(jié)點(diǎn)的左子級(jí)小于它,右子級(jí)大于或等于它。先看刪除操作:“先將刪除的節(jié)點(diǎn)與最后一個(gè)節(jié)點(diǎn)交換,交換后刪除最后一個(gè)節(jié)點(diǎn),然后重建二叉樹”,在這個(gè)過(guò)程中,如果刪除根節(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ì)這兩種操作的理解
二叉排序樹T,對(duì)于給出的正整數(shù)x,將data域值小于等于x的結(jié)點(diǎn)全部刪除掉。在空白處填入正確的語(yǔ)句?
每個(gè)節(jié)點(diǎn)最多有兩個(gè)叉的樹稱為二叉樹。搜索樹和排序樹是一回事。其特點(diǎn)是遍歷中間階的結(jié)果是單調(diào)的。這種樹可以用于二進(jìn)制搜索。平衡樹一般是一種排序樹,并添加一個(gè)點(diǎn)條件,即任意節(jié)點(diǎn)的兩個(gè)叉的深度幾乎相同(例如,差值的絕對(duì)值小于一個(gè)常數(shù),或者一個(gè)叉的深度不能是另一個(gè)叉的兩倍)。這樣的樹可以保證二進(jìn)制搜索的任何元素都是O(logn),并且具有插入或刪除元素都是O(logn)的屬性。