华中科技大学机试 二叉排序树 Easy

Posted songlinxuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华中科技大学机试 二叉排序树 Easy相关的知识,希望对你有一定的参考价值。

基本思想:

无;

 

关键点:

无;

 

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
#include<set>
using namespace std;

int n;


struct node {
    int data;
    node* left = NULL;
    node* right = NULL;
};

void insert(node* &root, int x) {
    if (root == NULL) {
        root = new node;
        root->data = x;
        return;
    }
    if (x > root->data) {
        insert(root->right, x);
    }
    else {
        insert(root->left, x);
    }
}

void frontorder(node* root) {
    if (root == NULL)
        return;
    cout << root->data << " ";
    frontorder(root->left);
    frontorder(root->right);
}

void inorder(node* root) {
    if (root == NULL)
        return;
    inorder(root->left);
    cout << root->data << " ";
    inorder(root->right);
}

void postorder(node* root) {
    if (root == NULL)
        return;
    postorder(root->left);
    postorder(root->right);
    cout << root->data << " ";
}

int main() {
    while (cin >>n) {
        int a;
        node* root = NULL;
        set<int>se;
        for (int i = 0; i < n; i++) {
            cin >> a;
            if (se.find(a) == se.end()) {
                insert(root, a);
                se.insert(a);
            }
        }
        frontorder(root);
        cout << endl;
        inorder(root);
        cout << endl;
        postorder(root);
        cout << endl;
        //cout << 11 << endl;
    }
    return 0;
}

 

以上是关于华中科技大学机试 二叉排序树 Easy的主要内容,如果未能解决你的问题,请参考以下文章

华中尔科技大机试 二叉树遍历 Easy *两序列构建二叉树

浙江大学机试 二叉搜索树 Easy *考点:两个遍历序列确定一棵子树

清华大学机试 剩下的树 Easy *贪心的区间思想

吉林大学机试 连通图 Easy

浙江大学机试 畅通工程 Easy

清华大学机试 反向输出 Easy