Algorithm/problem
백준 5639번 : 이진 검색 트리 - 트리 구현 후위 순회 C++
DingCoDing
2022. 10. 1. 16:04
반응형
https://www.acmicpc.net/problem/5639
5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* left;
Node* right;
Node(int _data, Node* _left, Node* _right): data(_data), left(_left), right(_right){};
};
void insert(Node** root,int value){
Node* p = *root, *q = nullptr;
while(p != nullptr){
q = p;
if(value < p->data){
p = p->left;
}
else p = p->right;
}
Node* newNode = new Node(value, nullptr, nullptr);
if(q == nullptr){
*root = newNode;
}
else if(value < q->data){
q->left = newNode;
}
else{
q->right = newNode;
}
}
void postOrder(Node* root){
if(root== nullptr) return;
postOrder(root->left);
postOrder(root->right);
cout << root->data << '\n';
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int num;
Node* root = nullptr;
while(cin >> num){
insert(&root, num);
}
postOrder(root);
return 0;
}
반응형