두 갈래 나무가 먼저 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례 차례차례

1299 단어
생각:
1. 점차적인 사상을 채택하여 세우다
2. 서열을 먼저 훑어보는 첫 번째 요소는 현재 하위 나무의 뿌리이다.
3. 중차순 역행 서열에서 루트 노드를 중심으로 앞쪽은 왼쪽 트리의 선차순 역행 서열, 뒤쪽은 오른쪽 트리의 선차순 역행 서열.
#include<iostream>
#include<string>
using namespace std;
struct Node
{
        char data;
        Node* lchild;
        Node* rchild;
};
void PreOrder(Node* root)
{
        if(root!=NULL)
        {
                cout<<root->data;
                PreOrder(root->lchild);
                PreOrder(root->rchild);
        }
}
void BuildTree(string sPre,string sMid,Node* &root)
{
        if(sPre.length()==0||sMid.length()==0) return;
        root=new Node;
        root->data=sPre[0];
        int index=sMid.find(sPre[0]);
        BuildTree(sPre.substr(1,index+1),sMid.substr(0,index),root->lchild);
        BuildTree(sPre.substr(index+1),sMid.substr(index+1),root->rchild);

}
int main()
{
        string s1="abdecfg";
        string s2="dbeafcg";
        Node* root=NULL;
        BuildTree(s1,s2,root);
        PreOrder(root);
        cout<<endl;
        return 0;
}

좋은 웹페이지 즐겨찾기