cgy12306

[백준 BoJ] 5639 - 이진 검색 트리 본문

Algorithm/C++

[백준 BoJ] 5639 - 이진 검색 트리

cgy12306 2021. 8. 6. 15:29
// https://www.acmicpc.net/problem/5639
// 이진 검색 트리
#include<iostream>
#include<cstdlib>
using namespace std;

typedef struct TreeNode {
	int key;
	struct TreeNode *left, *right;
}TreeNode;


TreeNode *insert(TreeNode *node, int key) {
	if (node == NULL) {
		node = (TreeNode *)malloc(sizeof(TreeNode));
		node->key = key;
		node->left = NULL;
		node->right = NULL;
	}
	else if (node->key > key) {
			node->left = insert(node->left, key);
		}
	else if(node->key < key) {
		node->right = insert(node->right, key);
	}
	return node;
	
}

void postorder(TreeNode *root) {
	if (root->left != NULL) postorder(root->left);
	if (root->right != NULL) postorder(root->right);
	cout << root->key << "\n";
}

void freedom(TreeNode *root) {
	if (root != NULL) {
		freedom(root->left);
		freedom(root->right);
		free(root);
	}
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int n;
	TreeNode *root;
	root = NULL;
	while (cin >> n) {
		root = insert(root, n);
	}
	postorder(root);
	freedom(root);
}

'Algorithm > C++' 카테고리의 다른 글

[백준 BoJ] 14675 - 단절점과 단절선  (0) 2021.08.10
[백준 BoJ] 1068 - 트리  (0) 2021.08.06
[백준 BoJ] 1991 - 트리 순회  (0) 2021.08.04
[백준 BoJ] 11286 - 절댓값 힙  (0) 2021.07.05
[백준 BoJ] 11729 - 최대 힙  (0) 2021.07.05
Comments