POJ 2255/递归:前序中序求后序
生活随笔
收集整理的這篇文章主要介紹了
POJ 2255/递归:前序中序求后序
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Sample Input
DBACEGF ABCDEFG
已知二叉樹(shù)的前序遍歷與后序遍歷求后序遍歷
算法:前序遍歷時(shí),第一位為根:D;找到中序中的D,則前面的ABC在左子樹(shù),右邊的EFG在右子樹(shù),則后序?yàn)闉樽笞訕?shù)+右子樹(shù)+根:solve(BAC,ABC)+solve(EGF,EFG)+D
#include <iostream> #include <string> using namespace std; string solve(string pre,string mid){if(pre.length()==1)return pre;else if(pre.length()==0)return "";int m = mid.find(pre[0]);return solve(pre.substr(1,m),mid.substr(0,m))+solve(pre.substr(m+1),mid.substr(m+1))+pre[0]; } int main(int argc, char* argv[]) {string pre,mid;while(cin>>pre>>mid){cout<<solve(pre,mid)<<endl;}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/yangyh/archive/2011/06/05/2073290.html
總結(jié)
以上是生活随笔為你收集整理的POJ 2255/递归:前序中序求后序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手指甲上的月牙辨健康,月牙会“丢”也能“
- 下一篇: C语言中printf(built: %s