POJ 2255/递归:前序中序求后序
生活随笔
收集整理的這篇文章主要介紹了
POJ 2255/递归:前序中序求后序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Sample Input
DBACEGF ABCDEFG
已知二叉樹的前序遍歷與后序遍歷求后序遍歷
算法:前序遍歷時,第一位為根:D;找到中序中的D,則前面的ABC在左子樹,右邊的EFG在右子樹,則后序為為左子樹+右子樹+根: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/递归:前序中序求后序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手指甲上的月牙辨健康,月牙会“丢”也能“
- 下一篇: C语言中printf(built: %s