선순 시퀀스와 중순 시퀀스로 두 갈래 트리 만들기

1595 단어 두 갈래 나무
이미 알고 있는 두 갈래 나무는 서열과 중간 서열을 먼저 반복하여 두 갈래 나무를 구성한다
struct BinaryTreeNode   // 
{
    int m_nValue;
    BinaryTreeNode* m_pLeft;
    BinaryTreeNode* m_pRight;
    BinaryTreeNode(int v):m_nValue(v),m_pLeft(NULL),m_pRight(NULL){}
};
BinaryTreeNode* Construct(int* preorder,int* inorder,int length)
{
    if(length<=0)
        return NULL;
    BinaryTreeNode* p=new BinaryTreeNode(*preorder);
    int *t;
    for(t=inorder;t<inorder+length;++t)
        if(*t==*preorder)
            break;
    int left=t-inorder;   // 
    p->m_pLeft=Construct(preorder+1,inorder,left);
    p->m_pRight=Construct(preorder+left+1,t+1,length-left-1);
    return p;
}

좋은 웹페이지 즐겨찾기