zoukankan      html  css  js  c++  java
  • 构造二叉树

    #include <iostream>
    using namespace std;
    
    typedef struct BinaryTreeNode
    {
        char data;
        BinaryTreeNode * leftChild;
        BinaryTreeNode * rightChild;
    }Node;
    
    void MakeBinaryTree(Node** root, char* preOrder, char* midOrder, int length)
    {
        if (length == 0)
        {
            (*root) = NULL;
            return;
        }
        (*root) = new Node;
        (*root)->data = *preOrder;
    
        char * rootplace = strchr(midOrder, (*root)->data);
        if (rootplace == NULL)
        {
            cout <<"input wrong order sample!"<<endl;
        }
        int leftTreeLength = strlen(midOrder) - strlen(rootplace);
        int rightTreeLength = length - leftTreeLength - 1;
    
        MakeBinaryTree(&(*root)->leftChild, preOrder+1, midOrder, leftTreeLength);
        MakeBinaryTree(&(*root)->rightChild, preOrder+leftTreeLength+1, rootplace+1, rightTreeLength);
    }
    
    void PostTraverse(Node* root)
    {
        if (root == NULL)
            return;
        PostTraverse(root->leftChild);
        PostTraverse(root->rightChild);
        cout << root->data;
    }
    
    int main(int argc, const char** argv)
    {
        char pre[] = "abdeijcfg";
        char mid[] = "dbiejafcg";
        Node* r;
        MakeBinaryTree(&r, pre, mid, strlen(pre));
        PostTraverse(r);
    
        return 0;
    }
    

  • 相关阅读:
    hdu 2003 求绝对值
    hdu 2002 计算球体积
    hdu 2000 ASCII码排序
    hdu 2001 计算两点间的距离
    hdu 2055 An easy problem
    hdu 1000+1089~1096 题解
    hdu 3233 Download Manager
    GIL 全局解释器锁
    多线程,代码示例
    多线程,理论部分
  • 原文地址:https://www.cnblogs.com/zhujunxxxxx/p/3348805.html
Copyright © 2011-2022 走看看