本題要求根據給定的一棵二叉樹的后序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果,
輸入格式:
第一行給出正整數N(≤30),是樹中結點的個數,隨后兩行,每行給出N個整數,分別對應后序遍歷和中序遍歷結果,數字間以空格分隔,題目保證輸入正確對應一棵二叉樹,
輸出格式:
在一行中輸出
Preorder:以及該樹的先序遍歷結果,數字間有1個空格,行末不得有多余空格,輸入樣例:
7
2 3 1 5 7 6 4
1 2 3 4 5 6 7輸出樣例:
Preorder: 4 1 3 2 6 5 7
1 //下標從0開始 2 void Preorder(int post[],int in[],int len) 3 { 4 if(len <= 0) return; 5 6 //找到父結點 7 int i = 0; 8 while(post[len-1] != in[i]) i++; 9 10 printf(" %d",post[len-1]); 11 12 Preorder(post,in,i); 13 Preprder(post+i,in+i+1,len-i-1); 14 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/121132.html
標籤:其他
上一篇:演算法-反轉一個單鏈表
