文章
5
粉丝
488
获赞
11
访问
56.0k
#include <bits/stdc++.h>
using namespace std;
typedef struct node{
char data;
struct node *lChild,*rChild;
}*BitTree;
void createTree(BitTree &T,string pre,string in,int size){
if(size<=0)
return;
T=new node;
T->data=pre[0];//找出根节点
T -> lChild = NULL;
T -> rChild = NULL;
char root=pre[0];//先序遍历 片段 的头部分
int i;
for(i=0;i<size;i++){
//中序遍历 找出 根节点的左部分
if(root == in[i])
break;
}
string preLeft=pre.substr(1,i);//通过先序遍历得出左边
string preRight=pre.substr(i+1,size-1-i);//分出来的右堆
string inLeft=in.substr(0,i);
string inRight=in.substr(i+1,size-i-1);
createTree(T->lChild,preLeft,inLeft,i);
&n...
登录后发布评论
暂无评论,来抢沙发