二叉查找樹:web
或者是一棵空樹spa
或者是具備下列性質的二叉樹: 3d
(1)若左子樹不空,則左子樹上全部結點的值均小於它的根結點的值; 指針
(2)若右子樹不空,則右子樹上全部結點的值均大於它的根結點的值; orm
(3)左、右子樹也分別爲二叉排序樹;htm
(1)查找blog
步驟: 排序
(3)刪除遞歸
在二叉排序樹刪去一個結點,分三種狀況討論:ci
1.若*p結點爲葉子結點,即PL(左子樹)和PR(右子樹)均爲空樹。因爲刪去葉子結點不破壞整棵樹的結構,則只需修改其雙親結點的指針便可。
2.若*p結點只有左子樹PL或右子樹PR,此時只要令PL或PR直接成爲其雙親結點*f的左子樹(當*p是左子樹)或右子樹(當*p是右子樹)便可,做此修改也不破壞二叉排序樹的特性。
(在下面的二叉查找樹中刪除元素:4)
3.若*p結點的左子樹和右子樹均不空。在刪去*p以後,爲保持其它元素之間的相對位置不變,可按中序遍歷保持有序進行調整,能夠有兩種作法: