백준
백준 소스코드 [C++] 5639 이진 검색 트리
Hani_Levenshtein
2021. 1. 4. 17:09
5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
백준 소스코드 [C++] 5639 이진 검색 트리
#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
#include <set>
#define all(v) v.begin(), v.end()
#define pii pair<int,int>
#define make_unique(v) v.erase(unique(v.begin(), v.end()), v.end())
typedef long long ll;
using namespace std;
struct Node {
int data;
Node* left;
Node* right;
};
Node* insert(Node* node, int data) {
if (node == NULL) {
node = new Node();
node->data = data;
node->left = node->right = NULL;
}
else if (data <= node->data)
node->left = insert(node->left, data);
else
node->right = insert(node->right, data);
return node;
}
void postorder(Node* node) {
if (node->left != NULL)
postorder(node->left);
if (node->right != NULL)
postorder(node->right);
cout << node->data << '\n';
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
Node* root = NULL;
int n;
while (cin >> n) {
root = insert(root, n);
}
postorder(root);
return 0;
}