文章

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...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发