By a preorder traversal of the binary tree traversal order and, thereafter seek preorder

#include <iostream>
#include <string>

using namespace std;

struct TreeNode {
    char data;
    TreeNode* leftChild;
    TreeNode* rightChild;
    TreeNode (char c) : data(c), leftChild(NULL), rightChild(NULL) {}
};

TreeNode* Build (string str1, string str2)
{
    if (str1.size() == 0) {                        // 返回空树 
        return NULL;
    }
    charstr1 = C [ 0 ];                             // current character 
    the TreeNode * = the root new new the TreeNode (C);        // create a new node 
    int position = str2.find (C);                   // Find the cut points 
    root-> leftChild = Build (str1 .substr ( . 1 , position), str2.substr ( 0 , position)); 
    the root -> = rightChild the Build (str1.substr (position + . 1 ), str2.substr (position + . 1 ));
     return the root; 
} 

void postorder (the TreeNode * the root)                     // postorder traversal 
{
     IF (root == NULL) {
        return;
    }
    PostOrder(root->leftChild);
    PostOrder(root->rightChild);
    cout << root->data;
    return;
}

int main ()
{
    string str1, str2;
    while (cin >> str1 >> str2) {
        TreeNode* root = Build(str1, str2);
        PostOrder(root);
        cout << endl;
    }
    return 0;
}

 

Guess you like

Origin www.cnblogs.com/MK-XIAOYU/p/12572748.html