已知中序和先序,求二叉樹的重構問題

2021-05-25 11:36:00 字數 644 閱讀 1620

這裡用二重指標的問題困擾了我好久,不然只用一重指標出不來結果或者執行不下去。因為顯示時呼叫了postorder函式,所以必須先生成乙個二叉鍊錶(postorder函式對此二叉鍊錶的根操作),而輸入只是兩行字串,所以還要生成二叉鍊錶!!可能這就是用二重指標的原因。程式如下,已經過多種情況的測試:

#include

#include

struct node;

void rebuild(char* ppreorder, char* pinorder, int ntreelen, node **proot) 

void postorder(node *p)     //後序遍歷

}void main()

或者用指標的引用,而不用二重指標可以如下

#include

#include

struct node;

void rebuild(char* ppreorder, char* pinorder, int ntreelen, node *&proot)  //用指標的引用,則只用單重指標

void postorder(node *p)     //後序遍歷

}void main()

二叉樹已知先序中序求後序 已知中序後序求先序

在做資料結構面試題的時候我們會經常發現有關二叉樹的題目總是這樣的 栗子 已知某二叉樹先序為 中序為 求後序 已知某二叉樹中序為 後序為 求先序 需要注意的是 我們只能夠通過已知先序中序求後序或已知中序後序求先序,而不能夠已知先序和後序求中序 下面總結一下兩種題的做法 首先回顧知識點 第一種 已知乙個...

求先序排列(二叉樹已知中序和後序,求先序)

時間限制 1 sec 記憶體限制 125 mb 提交 90 解決 73 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 每個測試檔案只包含一組測試資料,每組輸入包含兩行,第一行輸入乙個字串表示二叉樹的中序排列,第二行輸入乙個字串表示二叉樹的後序排列。對於每...

已知二叉樹先序和中序,求後序。

從處 一 已知前序 中序遍歷,求後序遍歷 例 前序遍歷 gdafemhz 中序遍歷 adefghmz 畫樹求法 第一步,根據前序遍歷的特點,我們知道根結點為g 第二步,觀察中序遍歷adefghmz。其中root節點g左側的adef必然是root的左子樹,g右側的hmz必然是root的右子樹。第三步,...