(原創(chuàng))像極了愛情的詳解排序二叉樹庵芭,一秒get

博客園傳送門:https://www.cnblogs.com/yx1999/p/10352828.html

排序二叉樹


二叉樹我們已經(jīng)非常熟悉了全蝶,但是除了尋常的儲存、遍歷芽卿,我們還能用二叉樹做什么呢揭芍?

我們都知道不同的遍歷方式會對相同的樹中產(chǎn)生不同的序列結(jié)果,排序二叉樹就是利用二叉樹的遍歷特征實現(xiàn)的特殊樹種卸例。

排序二叉樹從根結(jié)點起的每一個結(jié)點的左子樹元素均小于其自身沼沈,右子樹元素值均大于其自身

即任何結(jié)點的值均大于其左子樹所有元素,均小于其右子樹所有元素

如:

就是一個排序二叉樹币厕,直觀的一批列另,從子樹到根結(jié)點,永遠符合左小右大的規(guī)則(中序遍歷)

Ⅰ旦装、結(jié)構(gòu)定義

排序二叉樹的定義與一般二叉樹無異

Ⅱ页衙、排序二叉樹的查找

我們先來看一下排序二叉樹的查找實現(xiàn),因為插入在排序二叉樹中是實現(xiàn)后續(xù)建立阴绢、刪除結(jié)點的基礎(chǔ)店乐,因為結(jié)點帶有順序,故而遍歷條件有所改變呻袭,代碼如下:


清爽遞歸眨八,不解釋

Ⅲ、二叉排序樹的插入


代碼在這里:

這個插入上來先判斷一哈我們現(xiàn)有的樹里面有沒有這個元素左电,如果有就不會進入循環(huán)廉侧,至于插入操作的框架也基本符合中序遍歷的操作,只是加上了判斷大小

Ⅳ篓足、二叉排序樹刪除結(jié)點(HARD)


輕松愉快的建立段誊、查找排序二叉樹的操作完成之后,我們來看看比較困難的刪除排序二叉樹結(jié)點的操作栈拖。為什么說它困難呢连舍,相比插入或者查找,刪除面對的是一個已經(jīng)成型的樹涩哟,我們不僅要考慮怎樣去掉這個結(jié)點索赏,還要想到按照中序以及數(shù)字大小將原有結(jié)點按序放到正確位置。

好的贴彼,我們先來考慮一下我們可能刪除哪幾種結(jié)點:

第一類:待刪除結(jié)點只有左子樹潜腻,沒有右子樹,可以想見锻弓,這種情況下只需要把后續(xù)的左子樹接到待刪除結(jié)點的上一個結(jié)點上砾赔,再釋放待刪除結(jié)點的空間就OK

第二類:帶刪除結(jié)點只有右子樹蝌箍,沒有左子樹青灼,跟第一類一個道理暴心,這樣的操作只需要三行就解決,但是棘手的問題總在短暫的輕松過后

第三類:這一類情況就是大魔王遼杂拨,左右孩子一個不缺专普,手心手背都是肉,哪個也不能少弹沽,怎么解決這個問題呢檀夹?讓我們來看一個例子。

看這個丑不拉嘰的排序二叉樹策橘,非常體現(xiàn)中序遍歷特點

現(xiàn)在我們要刪除 34 這個結(jié)點炸渡,就是我們剛才說的那種第三類情況,左右均有結(jié)點丽已,這個時候蚌堵,我們有這兩種方法闊以達成目的

第一種:姑且叫他 犧牲前驅(qū)法 ,我們要去掉 34 沛婴,就要把他的前驅(qū)拿來頂替這個位置吼畏,保持二叉排序樹的序,然后當然要檢測一下嘁灯,如果犧牲的這個前驅(qū)點(在我們這里是 33 )有子樹泻蚊,還需要把子樹和上一級連上(如32),這是第一種方法

1丑婿、用直接前驅(qū) 33 替換 34?

2性雄、刪除原有的 33 結(jié)點

3、把結(jié)點 32 羹奉,移到原 33 位置

第二種:相信你也猜到了毅贮,犧牲后繼法,反正兄弟兩個要挑一個頂上去尘奏,讓我們看一哈在這個例子中滩褥,怎么個犧牲后繼


?35 已經(jīng)被我們放上來遼?

1、用直接后繼 35 替換 34

2炫加、刪除結(jié)點 35?

因為這里的 35 煢煢孑立瑰煎,沒兒沒女,所以這個例子的這里不需要連接子樹俗孝,但是千萬注意不要認為所有的替換后繼法都不用管子樹

好的酒甸,方法講明白了遼,我們代碼實現(xiàn)一哈

解讀見注釋

測試用主函數(shù)部分:



呼~完畢

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赋铝,一起剝皮案震驚了整個濱河市插勤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖农尖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件析恋,死亡現(xiàn)場離奇詭異,居然都是意外死亡盛卡,警方通過查閱死者的電腦和手機助隧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滑沧,“玉大人并村,你說我怎么就攤上這事∽壹迹” “怎么了哩牍?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長令漂。 經(jīng)常有香客問我姐叁,道長,這世上最難降的妖魔是什么洗显? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任外潜,我火速辦了婚禮,結(jié)果婚禮上挠唆,老公的妹妹穿的比我還像新娘处窥。我一直安慰自己,他們只是感情好玄组,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布滔驾。 她就那樣靜靜地躺著,像睡著了一般俄讹。 火紅的嫁衣襯著肌膚如雪哆致。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天患膛,我揣著相機與錄音摊阀,去河邊找鬼。 笑死踪蹬,一個胖子當著我的面吹牛胞此,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跃捣,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼漱牵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疚漆?” 一聲冷哼從身側(cè)響起酣胀,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤刁赦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闻镶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甚脉,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年儒溉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片发钝。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡顿涣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酝豪,到底是詐尸還是另有隱情涛碑,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布孵淘,位于F島的核電站蒲障,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘫证。R本人自食惡果不足惜揉阎,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望背捌。 院中可真熱鬧毙籽,春花似錦、人聲如沸毡庆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽么抗。三九已至毅否,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝇刀,已是汗流浹背螟加。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吞琐,地道東北人仰迁。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像顽分,于是被迫代替她去往敵國和親徐许。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容