輸入某二叉樹的前序遍歷和中序遍歷的結果,請輸出後序遍歷序列。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,重建二叉樹並返回後序遍歷序列
輸入某二叉樹的前序遍歷和中序遍歷的結果
輸出後序遍歷序列
1 2 4 7 3 5 6 84 7 2 1 5 3 8 6
7 4 2 5 8 6 3 1前序遍歷即先訪問根節點,然後是左子樹,右子樹
中序遍歷為先訪問左子樹,然後是根節點,右子樹
所以通過前序遍歷不斷地找到根節點,然後中序遍歷找到其左子樹和右子樹
最後就可以得到這棵二叉樹,後序遍歷即為 7 4 2 5 8 6 3 1
#include#include#includetypedef struct node* bintree;
struct node;
bintree build(int pre ,int in ,int size)
void postorder(bintree t) //後序遍歷 }
int main()
else //如果前乙個元素不是空格,那麼說明與前乙個元素一同構成的數 例如:10 }}
}int incount=0;
for(i=0;i='0'&&inn[i]<='9')
else}}
} //如果前序遍歷的結點數與中序遍歷的結點數相同且不為0,那麼可以找到對應二叉樹
if(precount==incount&&precount!=0)
return 0;
}
已知前序遍歷中序遍歷,求二叉樹的後序遍歷
陣列下標01 2345 67前序遍歷74 1653 82中序遍歷14 5678 32在二叉樹的前序遍歷中,第乙個數字總是樹的根節點的值。在中序遍歷中找到根節點,則根節點左邊的數字就是左子樹節點值,根節點右邊的數字就是右子樹節點值。使用遞迴的思想去分割左右子樹。在前序遍歷中,第乙個數字是7,是樹的根節...
已知二叉樹的前序遍歷,中序遍歷,求後序遍歷的問題。
首先先說下二叉樹的結構吧,對於如下圖1所示的結構,a為根節點,b為左子樹,c 為右子樹。圖1 現在開始切入正題,先解釋下二叉樹的前序遍歷,中序遍歷,和後序遍歷吧。1.前序遍歷 先遍歷根結點,然後遍歷左子樹,最後遍歷右子樹。2.中序遍歷 先遍歷左子樹,然後遍歷根結點,最後遍歷右子樹。3.後序遍歷 先遍...
二叉樹 已知前序遍歷和中序遍歷,輸出後續遍歷
已知某二叉樹的先序序列和中序序列,程式設計計算並輸出該二叉樹的後序序列。輸入說明 僅一組資料,分為兩行輸入,第一行表示指定二叉樹的先序序列,第二行表示該二叉樹的中序序列,序列元素均為大寫英文本元,表示二叉樹的結點。輸出說明 在一行上輸出該二叉樹的後序序列。輸入樣本 abdgcefh dgbaechf...