UVA 536——Tree Recovery
生活随笔
收集整理的這篇文章主要介紹了
UVA 536——Tree Recovery
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:給定一顆樹的先根遍歷和中根遍歷,然后求后根遍歷。
思路:先根遍歷的第一個為root,然后找到root在中根的位置,進而遞歸左右兒子求解。
code:
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std;char s1[30],s2[30];void sol(int p1,int p2,int q1,int q2) {if (p1>p2) return;int i=0;for (i=q1;s2[i]!=s1[p1];i++);sol(p1+1,p1-q1+i,q1,i-1);sol( p1+i-q1+1,p2,i+1,q2);printf("%c",s2[i]); } int main() {while (cin>>s1>>s2){int len=strlen(s1)-1;sol(0,len,0,len);puts("");} }總結
以上是生活随笔為你收集整理的UVA 536——Tree Recovery的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光遇万圣节暗号提示答案是什么
- 下一篇: UVA 11991——Easy Prob