




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、線索二叉樹的運算1査找某結(jié)點*p在指定次序下的前趨和后繼結(jié)點(1)在中序線索二叉樹中,查找結(jié)點*卩的中序后繼結(jié)點在中序線索二叉樹中,查找結(jié)點*p的中序后繼結(jié)點分兩種情形:若*p的右子樹空(即p-rtag為Thread),則p-rchild為右線索,直接指向*p的中序后繼?!纠肯聢D的中序線索二叉樹中,結(jié)點D的中序后繼是A。AI-:M.LL000o0(心中序戰(zhàn)盍二義郴【例】下圖的中序線索二叉樹中,結(jié)點D的中序后繼是A。AI-:M.LL000o0(心中序戰(zhàn)盍二義郴屮序線索二冥樹及叭有儲嵇構(gòu)M/LL0 E0/匚11H1若*p的右子樹非空(即p-rtag為Link),則*卩的中序后繼必是其右子樹中第一
2、個中序 遍歷到的結(jié)點。也就是從*p的右孩子開始,沿該孩子的左鏈往下查找,直至找到一個沒有 左孩子的結(jié)點為止,該結(jié)點是*p的右子樹中最左下的結(jié)點,即*P的中序后繼結(jié)點?!纠可蠄D的中序線索二叉樹中:A的中序后繼是F,它有右孩子;F 的中序后繼是 H ,它無右孩子;B 的中序后繼是 D ,它是 B 的右孩子。在中序線索二叉樹中求中序后繼結(jié)點的過程可【參見動畫演示】,具體算法如下:BinThrNode *InorderSuccessor(BinThrNode *p)/在中序線索樹中找結(jié)點*卩的中序后繼,設(shè)p非空BinThrNode *q;if (p-rtag=Thread) *p 的右子樹為空Ret
3、urn p-rchild; /返回右線索所指的中序后繼elseq=p-rchild;/從*p的右孩子開始查找while (q-ltag=Link)q=q-lchild; /左子樹非空時,沿左鏈往下查找return q;/當(dāng) q 的左子樹為空時,它就是最左下結(jié)點 /end if該算法的時間復(fù)雜度不超過樹的高度h,即0(h)。在中序線索二叉樹中查找結(jié)點*卩的中序前趨結(jié)點中序是一種對稱序,故在中序線索二叉樹中查找結(jié)點*p的中序前趨結(jié)點與找中序后繼 結(jié)點的方法完全對稱。具體情形如下:若*p的左子樹為空,則p-lchild為左線索,直接指向*p的中序前趨結(jié)點;【例】上圖所示的中序線索二叉樹中,F(xiàn)結(jié)點的中
4、序前趨結(jié)點是A若*p的左子樹非空,則從*p的左孩子出發(fā),沿右指針鏈往下查找,直到找到一個沒 有右孩子的結(jié)點為止。該結(jié)點是*p的左子樹中最右下的結(jié)點,它是*p的左子樹中最后一 個中序遍歷到的結(jié)點,即*p的中序前趨結(jié)點。【例】上圖所示中序線索二叉樹中,結(jié)點E左子樹非空,其中序前趨結(jié)點是I 在中序線索二叉樹中求中序前趨結(jié)點的過程可【參見動畫演示】,具體算法如下:BinThrNode *Inorderpre(BinThrNode *p)/在中序線索樹中找結(jié)點*卩的中序前趨,設(shè)p非空BinThrNode *q;if (p-ltag=Thread) *p 的左子樹為空return p-lchild; /返
5、回左線索所指的中序前趨elseq=p-lchild;從*p的左孩子開始查找while (q-rtag=Link)q=q-rchild;/右子樹非空時,沿右鏈往下查找return q; /當(dāng) q 的右子樹為空時,它就是最右下結(jié)點 /end if由上述討論可知:對于非線索二叉樹,僅從*p出發(fā)無法找到其中序前趨(或中序后繼), 而必須從根結(jié)點開始中序遍歷,才能找到*卩的中序前趨(或中序后繼)。線索二叉樹中的線索 使得查找中序前趨和中序后繼變得簡單有效。在后序線索二叉樹中,查找指定結(jié)點*卩的后序前趨結(jié)點在后序線索二叉樹中,查找指定結(jié)點*卩的后序前趨結(jié)點的具體規(guī)律是:若*p的左子樹為空,則p-lchil
6、d是前趨線索,指示其后序前趨結(jié)點?!纠吭谙聢D所示的后序線索二叉樹中,H的后序前趨是B, F的后序前趨是C。BEFDGH需序線窘二艾樹NULL若BEFDGH需序線窘二艾樹NULL若*p的左子樹非空,則p-lchild不是前趨線索。由于后序遍歷時,根是在遍歷其左右子樹之后被訪問的,故*p的后序前趨必是兩子樹中最后一個遍歷結(jié)點。當(dāng)*卩的右子樹非空時,*p的右孩子必是其后序前趨【例】在上圖所示的后序線索二叉樹中,A的后序前趨是E;當(dāng)*卩無右子樹時,*p的后序前趨必是其左孩子【例】在上圖所示的后序線索二叉樹中,E的后序前趨是F在后序線索二叉樹中,查找指定結(jié)點*卩的后序后繼結(jié)點具體的規(guī)律:若*p是根,則
7、*p是該二叉樹后序遍歷過程中最后一個訪問到的結(jié)點。*p的后序后繼 為空若*p是其雙親的右孩子,則*p的后序后繼結(jié)點就是其雙親結(jié)點【例】上圖所示的后序線索二叉樹中,E的后序后繼是A。若*p是其雙親的左孩子,但*P無右兄弟,*卩的后序后繼結(jié)點是其雙親結(jié)點【例】上圖所示的后序線索二叉樹中,F(xiàn)的后序后繼是E。若*p是其雙親的左孩子,但*p有右兄弟,則*卩的后序后繼是其雙親的右子樹中第一 個后序遍歷到的結(jié)點,它是該子樹中最左下的葉結(jié)點【例】上圖所示的后序線索二叉樹中,B的后序后繼是雙親A的右子樹中最左下的葉 結(jié)點 HF 是孩子樹中最左下結(jié)點,但它不是葉子。由上述討論中可知:在后序線索樹中,僅從*p出發(fā)就能找到其后序前趨結(jié)點;要找*p 的后序后繼結(jié)點,僅當(dāng)*卩的右子樹為空時,才能直接由*卩的右線索p-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年心理咨詢師職業(yè)考試試題及答案
- 2025年藥學(xué)專業(yè)執(zhí)業(yè)資格考試試題及答案
- 2025年中小學(xué)教師職業(yè)道德考試試卷及答案
- 2025年網(wǎng)絡(luò)設(shè)計與開發(fā)實踐考試試題及答案
- 2025年藝術(shù)設(shè)計基礎(chǔ)知識綜合考試卷及答案
- 江蘇省徐州市經(jīng)濟(jì)技術(shù)開發(fā)區(qū)2025屆小升初全真數(shù)學(xué)模擬預(yù)測卷含解析
- 內(nèi)蒙古科技大學(xué)《材料工程基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川省德陽市重點名校2024-2025學(xué)年初三第二學(xué)期二模考試生物試題含解析
- 外貿(mào)職業(yè)學(xué)院思政課件
- 消費者行為分析私域流量池合作協(xié)議
- 歷史一戰(zhàn)二戰(zhàn)試卷及答案
- 2025年導(dǎo)游從業(yè)資格知識點合輯
- (三診)成都市2022級高中高三畢業(yè)班第三次診斷性檢物理試卷(含答案)
- 四川省成都市蓉城名校聯(lián)盟2024-2025學(xué)年高一下學(xué)期期中考試英語(含答案)
- 2025-2030中國戶外背包行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025廣東二模語文(含答案)
- 新加坡sm214th面經(jīng)44緋的同學(xué)
- 全國第七屆中小學(xué)音樂優(yōu)質(zhì)課比賽教學(xué)設(shè)計跳圓舞曲的小貓
- 圍術(shù)期過敏反應(yīng)診治的專家共識(全文)
- 2013年俄語專業(yè)四級歷年真題詳解
- 論中學(xué)語文教師美學(xué)素養(yǎng)的培養(yǎng)
評論
0/150
提交評論