九度OJ 1078

ABC
BAC
FDXEAG
XDEFAG

BCA
XEDGAF

#include <iostream>
using namespace std;

struct Node {
Node *lchild;
Node *rchild;
char c;
}Tree[50];

int loc;
string str1,str2;

Node *create(){
Tree[loc].lchild = Tree[loc].rchild = NULL;
return &Tree[loc++];
}

void postOrder(Node *T){
if(T->lchild!=NULL){
postOrder(T->lchild);
}
if(T->rchild!=NULL){
postOrder(T->rchild);
}
cout<<T->c;
}

Node *build(int s1,int s2,int e1,int e2){
Node *ret = create();
ret->c = str1[s1];
int rootIdx;
for(int i=e1;i<=e2;i++){
if(str1[s1] == str2[i]){
rootIdx = i;
break;
}
}
if(rootIdx != e1){
ret->lchild = build(s1+1,s1+rootIdx-e1,e1,rootIdx-1);
}
if(rootIdx != e2){
ret->rchild = build(s1+rootIdx-e1+1,s2,rootIdx+1,e2);
}
return ret;
}

int main(){
while(cin>>str1){
cin>>str2;
loc = 0;
int l1 = str1.length();
int l2 = str2.length();
Node *T = build(0,l1-1,0,l2-1);
postOrder(T);
cout<<endl;
}
return 0;
}

九度1078

2014-05-08 23:18:37

九度OJ 1078 二叉树遍历

2014-12-28 16:10:07

【九度OJ】题目1078：二叉树遍历 解题报告

2017-03-03 19:42:53

题目1078：二叉树遍历(前序跟中序得到后序)

2015-08-05 14:22:12

题目1084: 二叉树遍历

2013-03-16 23:29:26

华为OJ 二叉树遍历

2016-04-13 12:17:09

根据前序、中序构建二叉树

2017-02-01 17:43:23

swustoj利用二叉树中序及后序遍历确定该二叉树的先序序列(0983)

2017-04-17 13:37:17

前序遍历和中序遍历序列能确定唯一的一棵二叉树

2015-12-18 12:12:30

题目1078：二叉树遍历(根据前序和中序遍历结果，获得后序遍历)

2014-08-15 22:20:27