題目:輸入二叉樹的先序和中序遍歷序列,求後序遍歷。
(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 分別存放前序和中...