




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第四節(jié)線索二叉樹一、線索二叉樹的概念1、定義n個結(jié)點的二叉鏈表中含有n+1個空指針域。利用二叉鏈表中的空指針域,存放指向結(jié)點在某種遍歷次序下的前趨和后繼結(jié)點的指針(這種附加的指針稱為"線索")。這種加上了線索的二叉鏈表稱為線索鏈表,相應(yīng)的二叉樹稱為線索二叉樹。根據(jù)線索性質(zhì)的不同,線索二叉樹可分為前序線索二叉樹、中序線索二叉樹和后序線索二叉樹三種。2、線索鏈表的結(jié)點結(jié)構(gòu)【例】如圖(a)所示的二叉樹所對應(yīng)的中序線索二叉樹如圖(b)所示,圖(c)所示為二叉線索鏈表樹。3、線索鏈表的結(jié)點類型定義typedefstructnode{DataTypedata;intltag,rtag;structnode*lchild,*rchild;}BinThrNode;//線索鏈表結(jié)點類型typedefBinThrNode*BinThrTree;//定義線索鏈表類型二、二叉樹線索化算法1、算法思想按某種次序遍歷二叉樹,在遍歷過程中用線索取代空指針即可.(1)如果根結(jié)點的左孩子指針域為空,則將左線索標(biāo)志域置1,同時給根結(jié)點加左線索。(2)如果根結(jié)點的右孩子指針域為空,則將右線索標(biāo)志域置l,同時給根結(jié)點加右線索。(3)將根結(jié)點指針賦給存放前趨結(jié)點指針的變量,以便當(dāng)訪問下一個結(jié)點時,此根結(jié)點作為前趨結(jié)點。2、二叉鏈表加中序線索的算法算法與中序遍歷算法類似,只是將遍歷算法中訪問根結(jié)點*bt的操作改為在*bt和中序前趨*pre之間建立線索。voidInorderThread(BinThrTreebt){StaticBinThrNode*pre=NULL;//定義指向前趨結(jié)點的指針pre(靜態(tài)變量,只初始化1次),保存剛訪問過的結(jié)點if(bt!=NULL)//當(dāng)二叉樹為空時結(jié)束遞歸{InorderThread(bt->lchild);//左子樹線索化if(bt->lchild==NULL)bt->ltag=l;elsebt->ltag=0;if(bt->rchild==NULL)bt->rtag=l;elsebt->rtag=0;if(pre){if(pre->rtag==1)pre->rchild=bt;//給前趨結(jié)點加后繼線索if(bt->ltag==1)bt->lchild=pre;//給當(dāng)前結(jié)點加前趨線索}pre=bt;//將剛訪問過的當(dāng)前結(jié)點置為前趨結(jié)點InorderThread(bt->rchild);//右子樹線索化}}三、二叉線索鏈表上的運算1、在中序線索二叉樹上查找某結(jié)點*p的后繼結(jié)點【分析】分兩種情況:(1)若結(jié)點*p的rtag域值為1,則表明p->rchild為右線索,它直接指向結(jié)點。(2)若結(jié)點*p的rtag域值為O,則表明p->rchild指向右孩子結(jié)點,結(jié)點*p的中序后繼結(jié)點必是其右子樹第一個中序遍歷到的結(jié)點,因此從結(jié)點*p的右孩子開始,沿左指針鏈向下查找,直到找到一個沒有左孩子(即ltag為1)的結(jié)點為止,該結(jié)點是結(jié)點*p的右子樹中"最左下"的結(jié)點,它就是結(jié)點*p的中序后繼結(jié)點。【算法描述】BinThrNode*InorderNext(BinThrNode*p){//在中序線索二叉樹上求結(jié)點*p的中序后繼結(jié)點if(p->rtag==1)//rchild域為右線索returnp->rchild;//返回中序后繼結(jié)點指針else{p=p->rchild;//從*p的右孩子開始while(p->ltag==O)p=p->lchild;//沿左指針鏈向下查找returnp;}}2、線索二叉樹的中序遍歷算法【基本思想】首先從根結(jié)點起沿左指針鏈向下查找,直到找到一個左線索標(biāo)志為1的結(jié)點止,該結(jié)點的左指針域必為空,它就是整個中序序列中的第一個結(jié)點。訪問該結(jié)點,然后就可以依次找結(jié)點的后繼,直至中序后繼為空時為止?!舅惴枋觥縱oidTinorderThrTree(BinThrThrtreebt){BinThrNode*p;if(bt!=NULL)//二叉樹不空{(diào)p=bt;//使p指向根結(jié)點while(p->ltag==O)//查找出中序遍歷的第一個結(jié)點p=p->lchild;do{printf("%c",p->data);//輸出訪問結(jié)點值p=InorderNext(p);//調(diào)用前面的函數(shù)查找結(jié)點*p的中序后繼}while(p!=NULL);//當(dāng)p為空時算法結(jié)束}}當(dāng)前講授【真題選解】(例題?單選題)下列所示各圖中是中序線索化二叉樹的是()A.B.C.D.
隱藏答案【答案】A【解析】選項A,b的前驅(qū)是NULL,后繼是a;c的前驅(qū)是a,后繼是空。所以遍歷順序為bac,可見,選項A是中序線索化二叉樹。選項B,b的前驅(qū)是a,后繼是c;c的前驅(qū)是b,
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC TR 63502:2024 EN Guidelines for parameters measurement of HVDC transmission line
- 2025-2030年中國鉛鋅行業(yè)十三五投資分析及發(fā)展風(fēng)險評估報告
- 2025-2030年中國酵母核糖核酸市場運行趨勢及投資戰(zhàn)略研究報告
- 2025-2030年中國速溶固體飲料市場發(fā)展趨勢及前景調(diào)研分析報告
- 2025-2030年中國豆腐市場運行狀況及發(fā)展趨勢分析報告
- 2025-2030年中國血液透析機市場運營現(xiàn)狀及發(fā)展前景規(guī)劃分析報告
- 2025-2030年中國脫咖啡因綠茶市場發(fā)展策略規(guī)劃分析報告
- 2025-2030年中國美白護膚市場運行狀況及投資戰(zhàn)略研究報告
- 2025年上海市建筑安全員-A證考試題庫及答案
- 農(nóng)藥經(jīng)營管理知識培訓(xùn)專家講座
- 《自主創(chuàng)新對于鋼結(jié)構(gòu)發(fā)展的重要性》2400字
- 食品采購與進貨臺賬
- GB/T 24353-2022風(fēng)險管理指南
- GB/T 6284-2006化工產(chǎn)品中水分測定的通用方法干燥減量法
- GB/T 3003-2017耐火纖維及制品
- GB/T 22080-2016信息技術(shù)安全技術(shù)信息安全管理體系要求
- GB/T 13915-2013沖壓件角度公差
- 制藥工程導(dǎo)論課件
- 瑜伽師地論(完美排版全一百卷)
- 槳聲燈影里的秦淮河1-課件
評論
0/150
提交評論