[C] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)

2020. 4. 29. 18:46ยท๐Ÿ“ Computer Science/โœ Algorithm

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)

  • ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.
  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„๋œ๋‹ค.

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ

 

๊ธฐ๋ณธ ์›๋ฆฌ

  • ๋ชจ๋“  ๋…ธ๋“œ์˜ ๊ฐ’์€ ์œ ์ผํ•˜๋‹ค.
  • ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค.
  • ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ฐ’๋“ค์€ ๋ฃจํŠธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค.
  • ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋„ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์ด๋‹ค. 

 

๋ฌธ์ œ

 

์ด์ง„ ํƒ์ƒ‰ ์ˆœํšŒ

 

#include <iostream>
using namespace std;

typedef struct node_struct {
	int data;
	struct node_struct* left;
	struct node_struct* right;
}node;

node* insert_node(node* root, int value)
{
	if (root == NULL) {
		root = new node;
		root->left = root->right = NULL;
		root->data = value;
	}
	else {
		if (root->data > value)
			root->left = insert_node(root->left, value);
		else
			root->right = insert_node(root->right, value);
	}
	return root;
}

void pre(node* root) // ์ „์œ„ ์ˆœํšŒ  
{
	if (root) {
		printf("%d ", root->data);
		pre(root->left);
		pre(root->right);
	}
}

void ino(node* root) // ์ค‘์œ„ ์ˆœํšŒ
{
	if (root) {
		ino(root->left);
		printf("%d ", root->data);
		ino(root->right);
	}
}

void pos(node* root) // ํ›„์œ„ ์ˆœํšŒ
{
	if (root) {
		pos(root->left);
		pos(root->right);
		printf("%d ", root->data);
	}
}

int main()
{
	node* root = NULL;
	root = insert_node(root, 10);
	root = insert_node(root, 5);
	root = insert_node(root, 7);
	root = insert_node(root, 13);
	root = insert_node(root, 1);
	root = insert_node(root, 17);

	pre(root);
	printf("\n\n");
	ino(root);
	printf("\n\n");
	pos(root);

	return 0;
}
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Computer Science/โœ Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C++] ํ(Queue), ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)
  • [C++] ์Šคํƒ(Stack)
  • [C++] binary_search, lower_bound, upper_bound
  • [C++] ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
[C] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(BST)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”