PS/Baekjoon Online Judge

[백준 5639] 이진 검색 트리 [C]

kimyoungrok 2021. 8. 19. 05:54
728x90

백준 - 5639


풀이

조건에 맞게 값을 넣어줄 수 있는 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