**如下:
#include
#include
#include
#include
using
namespace std;
//先定義樹的結構體
struct treenode};
//建樹
treenode *
build
(string preorder,string inorder)
//先序的第乙個結點為樹的根節點
char c=preorder[0]
;//treenode node1(c);//建立好了根節點
treenode *node=
newtreenode
(c);
//new建立物件需要指標接收,一處初始化,多處使用
//*node=node1;
int position=inorder.
find
(c);
node-
>left=
build
(preorder.
substr(1
,position)
,inorder.
substr(0
,position));
node-
>right=
build
(preorder.
substr
(position+1)
,inorder.
substr
(position+1)
);return node;
}void
postorder
(treenode *node)
postorder
(node-
>left)
;postorder
(node-
>right)
;printf
("%c"
,node-
>data);}
intmain()
二叉樹已知先序中序求後序 已知中序後序求先序
在做資料結構面試題的時候我們會經常發現有關二叉樹的題目總是這樣的 栗子 已知某二叉樹先序為 中序為 求後序 已知某二叉樹中序為 後序為 求先序 需要注意的是 我們只能夠通過已知先序中序求後序或已知中序後序求先序,而不能夠已知先序和後序求中序 下面總結一下兩種題的做法 首先回顧知識點 第一種 已知乙個...
二叉樹遍歷(已知先序 中序求後序)
時間限制 1000 ms 記憶體限制 65536 kb 提交數 11 通過數 9 輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。共兩行,第一行乙個字串,表示樹的先序遍歷,第二行乙個字串,表示樹的中序遍歷。樹的結點一律用小寫字母表示。一行,表示樹的後序遍歷序列。abdec dbeac deb...
二叉樹 已知後序 中序遍歷,求先序遍歷
二叉樹後序遍歷序列是dabec,中序遍歷序列debac,它的前序遍歷的序列是什麼 1.由後序 lrd 得知c肯定為根結點 2.由中序 ldr 以c為根節點該樹必然只有左子樹 3.先從後序入樹 dabec 由遍歷規則得知,e 為第二層節點 於是有ce 4.結合中序遍歷debac觀察節點,由於 e為第二...