指针建树

#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int Node_k,pre[N],in[N],post[N];//遍历用
struct Node {
    int value;
    Node *left, *right;

    Node(int value = 0, Node *left = nullptr, Node *right = nullptr) : value(value), left(left), right(right) {};



    Node* find(const int val, Node *node) {
        if (node != nullptr) {
            if (node->value == val)
                return node;
            else {
                Node *res = find(val, node->left);
                if (res != nullptr)
                    return res;
                else
                    return find(val, node->right);
            }
        } else
            return nullptr;
    }
};

Node* create_tree(int val) {
    if (val == 0) return nullptr;
    else return new Node(val);
}
void preorder(Node *root) {
    if (root != nullptr) {
        pre[Node_k++] = root->value;
        preorder(root->left);
        preorder(root->right);
    }
    return;
}

void inorder(Node *root) {
    if (root != nullptr) {
        inorder(root->left);
        in[Node_k++] = root->value;
        inorder(root->right);
    }
    return;
}

void postorder(Node *root) {
    if (root != nullptr) {
        postorder(root->left);
        postorder(root->right);
        pre[Node_k++] = root->value;
    }
    return;
}

int main(){
    Node* tree = new Node;
    int lval=1,rval=1;
    tree->left=create_tree(lval);
    tree->right=create_tree(rval);
    preorder(tree);
    for (int i = 0; i < Node_k; i++) {
        cout<<pre[i]<<endl;
    }

    return 0;
}

 

posted @ 2021-04-20 22:25  limited_Infinite  阅读(96)  评论(0编辑  收藏  举报
// //返回顶部 //返回顶部按钮