#include<iostream>
#include<string>
using namespace std;
struct node{
char data;
node *l,*r;
};
node *create(const char *i,const char *p,int len){
node *x=new node;
x->data=*p;
int index=0;
for(;index<len;index++){
if(*(i+index)==*p)
break;
}
x->l=create(i,p+1,index);
x->r=create(i+index+1,p+index+1,len-index-1);
cout<<x->data;
return NULL;
}
int main(){
string pr,in;
while(cin>>in>>pr){
const char *p=pr.c_str();
const char *i=in.c_str();
int len=pr.size();
create(i,p,len);
}
return 0;
}
二叉树的遍历存在一定规律:
先序:根左右
中序:左根右
利用 先序遍历确定二叉树的根节点
递归完成二叉树的还原
.c_str()函数包含在<string>头文件中,
作用是将字符串转换为字符数组;
返回的数据类型为const char *