二叉樹後續線索樹的問題,後序後繼線索二叉樹中找後繼的集中情況

時間 2021-05-05 23:04:25

1樓:

後序遍歷:

若二叉樹非空,則依次執行如下操作:

⑴遍歷左子樹;

⑵遍歷右子樹;

⑶訪問根結點。

所以從根結點開始(樹的判斷都是從根開始),如這裡的a,這裡有左右子樹b、c,但是在訪問b的時候,發現b有左子樹d,所以d比b先,d有左子樹e、e有右子樹f,所以f比e先,e比d先,訪問完b後,訪問c,c有右子樹g,先訪問g,g有左子樹訪問h,所以後序的遍歷順序就是你寫的那個。

所以理解應該是,沒有左孩子找右孩子,沒有右孩子,則訪問父結點,也不知道是不是你說的那個意思。

c結點因為有g這個右子樹,當然是g比c先,c當然也比a先。

另外,最好你自己寫一個遞迴的程式,先序中序後序都做一下,網上有很多的**,理解一下樹的結構。

二叉樹**索化後,仍不能有效求解的問題是中序線索二叉樹中求中序前趨嗎?

2樓:匿名使用者

前序遍歷(中左右)、中序遍歷

(左中右)的最後訪問的節點都是左或右葉節點專,葉節點是沒有子樹的屬,所以兩個指標域空出來了,可以存放線索指標。但是後續遍歷(左右中),最後訪問的子樹的根節點,子樹根節點的兩個指標域都指向子樹了,所以不能空出來存放線索資訊。

3樓:匿名使用者

我的書上答案是後序的後繼,中序的前驅可以求。但我不知道原因,查資料中。

4樓:匿名使用者

不能bai求解的有兩個,du一個先序線索zhi二叉樹中求先序前驅,另dao一個是後序線回索二叉樹求後序後繼答

因為先序按照根 左 右,找前驅只能在它的父節點上面找,因為它的左右孩子只能是它的後繼。

同理,後序按照左 右 根,找後繼只能在它的父節點上找。因為它的左右孩子只能是它的前驅。

目前我就見過問後者的題目。但按我理解,先序線索二叉樹求先序前驅和後者一樣道理,應該也是不能有效求解。

個人理解,錯了請糾正,勿罵!

後序後繼線索二叉樹中找後繼的集中情況?

5樓:

在後序線索二叉樹中查詢結點*p的後繼:若結點*p為根,則無後繼;若結點*p為其雙親的右孩子,則其後繼為其雙親;若結點*p為其雙親的左孩子,且雙親無右子女,則其後繼為其雙親;若結點*p為其雙親的左孩子,且雙親有右子女,則結點*p的後繼是其雙親的右子樹中按後序遍歷的第一個結點。

試說明是否存在這樣的二叉樹,可以實現後序線索樹進行後序遍歷時不使用棧?對前序線索二叉樹進行前序遍歷

6樓:匿名使用者

存在因為正常後序線索找後繼困難,前序線索找先序前驅困難,因此只要解決這個問題就可以了

答案就是:向左的單支樹可以實現後序線索樹進行後序遍歷時不使用棧,此時由於所有結點的右子樹為空,正好存放後序後繼的線索,後序前驅正好是該結點的左孩子

向右的單支樹則可以實現前序線索樹進行前序遍歷時不使用棧,此時所有結點的左子樹為空,正好存放前序前驅的線索,前序後繼正好是該結點的右孩子

對此二叉樹進行後序線索化,為每個空指標建立相應的前驅或後續線索

7樓:一口沒水的枯井

所謂線索copy化,就是按照一定的遍bai歷順序確定每個結點du的前驅和後繼

後序遍歷的

zhi結果為:gdbehfca

後序細講就是 左->根dao->右的順序,如d->g 這棵樹 d是根,g是右子樹. 訪問d之前要先訪問左子樹(無) 然後再訪問右子樹(d), 所以 g的前驅是d, 訪問完g需要訪問根d, 所以d是g的後繼,用虛線標出了

先序線索二叉樹如圖。圖中實線的箭頭代表什麼?

8樓:匿名使用者

實線代表二叉樹中原有結點的連結,虛線代表遍歷序列的線索,左邊的是遍歷序列前驅的線索,右邊的是遍歷序列後繼的線索

先序是abdfjkgcehilm

9樓:匿名使用者

莫非是先序遍歷時要用到的孩子指標?不過這樣的話,i到l m的線就畫反了。。。

線索二叉樹

10樓:聶風2007號

我先說一說 每個 節點 那 五個格 的資料 的含義

中間哪一個 是 儲存資料

從左向右 ,第一個 和 第五個 是指標,具體指向什麼 取決於第二個 和 第四個的值

第二個 如果是零,實線表示,則 第一個指向的是 左孩子

第二個 如果是1,虛線表示,則 第一個 指向的是 在中序遍歷次序下 ,該節點的前驅(即前一個),,如果 該節點 自己就是第一個,沒有前驅,,則為空指標 ,,圖中最左邊 的的c就是這樣

(中序遍歷 是先訪問左孩子,再訪問根,再訪問右孩子,,圖中節點的中根遍歷次序為cbdafhgie)

第四個為0 ,則第五個指向右孩子

第四個為1.則第五個 指向 中序遍歷次序下的後繼,,如本身已經是最後一個 沒有後繼 ,則為空指標

二叉樹線索化的思想是什麼? 15

11樓:

線索二叉樹就是

使用的物件:樹節點中沒有使用的n-1個空指標(n個樹節點,空指標永遠都是n+1個,自己推下)。

執行的原則:某種深度遍歷順序——先序,中序,後序

過程:按照中序(當然也可以是其他的遍歷)的前驅後繼關係,若p的左子樹為空,則左子樹指向p的中序前驅,若p的右子樹為空,則p的右子樹節點指向p的後繼,若是子樹都有,就不用搗騰了。第一個節點的左子樹為空(此節點一定是葉節點,而且沒前驅,所以是空),最後一個節點的右子樹也是空。

資料結構:在樹節點的結構是(data,*lchild,*rchild)線索樹的節點是(data,*lchild,*rchild,ltag,rtag),tag為1表示線索數的節點,為0標識樹節點。

目的:方便找到樹在某種遍歷的條件下前驅和後繼。不是用來遍歷的哈

注意的點:只用中序線索樹可以很完美的達到這個效果,前序線索樹在計算前驅的時候會牽扯到自己的父節點,就要使用棧來找,這樣和遍歷查詢沒區別,同理,後序線索樹找後繼會比較麻煩。

話說,要點基本就這樣了。

細節的點,比如說為什麼n+1啊,為什麼前序後序不完美啊,這些一邊就考個知道,而且推理是很快的,所以呢,考試的話,就照著我說的這幾個點就ok了,主要是要會畫,還有就是中序查詢的實現。

中序實現給你一個要點:

找前驅:向左找第一個rtag為1的就是它的前驅了。

因為在中序中,所有的內節點(非葉節點)的前驅和後繼必然是一個葉節點。

要是記不住演算法,記住這點臨場寫也夠了,前提是老兄您在之前弄明白我的要點的意義。

線索二叉樹的插入有幾種情況,線索二叉樹的插入和刪除

娜莉 向線索二叉樹插入一個新節點時,必須修改插入位置原有的前驅 後繼線索,使得整個原有的線索化關係不但能夠保留,而且新節點插入後也能正確保持這種關係。以中序線索二叉樹為例,如果新節點r作為節點s的右子女插入,要依據s的rightchild域是線索還是右子女指標來決定不同的處理方式。同理,新節點r作為...

二叉樹遍歷,二叉樹遍歷問題?

這個說起來 很煩 不過可以 用遞迴的思想做。因為根為1左4 2 右5 7 3 6 遞迴的思想。再在左子樹的前序中 2 為根 當然 4 就是葉子 再看中序 在右邊。右3 為根 所以子樹的左子樹 還有5 7 右 為6在遞迴。不打了 根結點為1,則左為42,右5736,再看先根序列24 3576 左邊42...

線索二叉樹,線索二叉樹的特點是什麼

根結點也需要處理,根結點的前驅為空,後繼為隊裡中的下一個元素。 二叉樹的二叉線索儲存表示 includestdio.h 線索二叉樹的特點是什麼 不知道是否你要的答案 二叉樹的遍歷本質上是將一個複雜的非線性結構轉換為線性結構,使每個結點都有了唯一前驅和後繼 第一個結點無前驅,最後一個結點無後繼 對於二...