根据先序和中序求后序,注意递归终止条件

来源:互联网 发布:php考试系统手机端 编辑:程序博客网 时间:2024/05/01 01:33
#include "stdafx.h"#include <iostream>#include <string>using namespace std;//根据先序和中序求后序void LastOrd(string PreOrder, string MidOrder, int n){if (n == 0)return;if (n == 1){cout << PreOrder[0];return;}size_t rootPos = MidOrder.find(PreOrder[0]);string subPreOrder1 = PreOrder.substr(1, rootPos);string subPreOrder2 = PreOrder.substr(1 + rootPos, string::npos);string subMinOrder1 = MidOrder.substr(0, rootPos);string subMinOrder2 = MidOrder.substr(rootPos + 1, string::npos);LastOrd(subPreOrder1, subMinOrder1, rootPos);LastOrd(subPreOrder2, subMinOrder2, n - rootPos - 1);cout << PreOrder[0];}int main(){string PreOrder, MidOrder;while (cin >> PreOrder >> MidOrder){LastOrd(PreOrder, MidOrder, PreOrder.size());cout << endl;}return 0;}

0 0
原创粉丝点击