728x90
풀이
조건에 맞게 값을 넣어줄 수 있는 Binary Search Tree를 구현하는 문제이다.
소스코드
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *left, *right;
}*pNode;
void postorder(pNode root){
if (root == NULL) return;
postorder(root->left);
postorder(root->right);
printf("%d\n", root->data);
}
pNode make_tree(pNode root, int data){
if (root == NULL){
root = (pNode)malloc(sizeof(pNode));
root->data = data;
root->left = NULL;
root->right = NULL;
return root;
}else if (data < root->data)
root->left = make_tree(root->left, data);
else if (data > root->data)
root->right = make_tree(root->right, data);
return root;
}
int main(){
int data;
pNode tree = NULL;
while (scanf("%d", &data) != EOF)
tree = make_tree(tree, data);
postorder(tree);
}
출처
5639번: 이진 검색 트리
트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다
www.acmicpc.net
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 13172] Σ [C] (0) | 2021.08.20 |
---|---|
[백준 16953] A → B [C/C++] (0) | 2021.08.20 |
[백준 2879] 코딩은 예쁘게 [C] (0) | 2021.08.19 |
[백준 1082] 방 번호 [C] (0) | 2021.08.19 |
[백준 16214] N과 M [C] (0) | 2021.08.18 |