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);
}
출처
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 |