用 前序 中序 後序

2021-10-09 04:12:22 字數 1261 閱讀 6075

題目:輸入二叉樹的先序和中序遍歷序列,求後序遍歷。

(1)輸入樣例:

先序:1 2 4 7 3 5 8 9 6

中序:4 7 2 1 8 5 9 3 6

(2)輸出樣例:

後序:7 4 2 8 9 5 6 3 1

思路:(1)利用先序和中序虛擬出樹的影象。

(2)利用後序遍歷性質,在樹上進行遍歷,輸出。

**:由於**中含有解釋,因此就不一步一步去分析了。總體還是很簡單的。

#include

using

namespace std;

const

int n =

1010

;//這裡依據結點個數

int pre[n]

,in[n]

,post[n]

;//先序、中序、後序

int k;

struct node};

void

buildtree

(int l,

int r,

int&t,node*

&root )

if(flag ==-1

)return

;//表示所搜查的範圍不存在根,結束

root =

newnode

(in[flag]);

//新建結點

t++;if

(flag >l)

buildtree

(l,flag-

1,t,root-

>l);if

(flag buildtree

(flag+

1,r,t,root-

>r);}

//下面的是在虛擬樹完成後,才可以進行的

//假如題目給的是:中序+後序,則只需改變上面的部分程式,其他的只需稍作調整即可

void

preorder

(node *root)

}void

inorder

(node *root)

}void

postorder

(node *root)

}//釋放空間(如果不釋放,會造成記憶體洩漏,造成記憶體浪費)

void

remove_tree

(node *root)

intmain()

return0;

}

前序中序後序

遍歷情況 前序 根結點 左子樹 右子樹 中序 左子樹 根結點 右子樹 後序 左子樹 右子樹 根結點 例題一 輸入描述 input description 輸入檔案共2行,第一行表示該樹的前序遍歷結果,第二行表示該樹的後序遍歷結果。輸入的字符集合為,長度不超過26。輸出描述 output descri...

前序中序求後序 後序中序求前序層次 模板

這是資料結構的知識。剛開始先拒絕用指標去寫。當我把這個想法和別人分享是,別人說不喜歡用指標的程式設計師不是乙個好的c c 程式設計師。所以,就有了這麼勵志的時刻,我參考大牛的 自己用指標寫了個遍,直接1a 不用指標總是出現各種想不到的錯誤。心累。orz.include include include...

前序中序求後序

test fdxeag xdefag 涉及到二叉樹的問題最好不用動態申請,對記憶體的管理很麻煩 採用預分配的靜態陣列 本題目由前序和中序得到後序,方法 先構造二叉樹,再進行 include includestruct nodetree 50 char str1 50 str2 50 分別存放前序和中...