Skip to content

Latest commit

ย 

History

History
64 lines (50 loc) ยท 3.08 KB

File metadata and controls

64 lines (50 loc) ยท 3.08 KB

header

header

![header](https://capsule-render.vercel.app/api?type=waving&color=auto&height=300&section=header&text=Js%20Study&fontSize=90&animation=fadeIn&fontAlignY=38&desc=%20๋ณธ์ธ์˜ ์ด๋ฆ„์„ ๋„ฃ์–ด์ฃผ์„ธ์š”&descAlignY=65&descAlign=75)

Navigation

MadeBy

๋Œ€ํ‘œ์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ: ํŠธ๋ฆฌ

1. ํŠธ๋ฆฌ (Tree) ๊ตฌ์กฐ

  • ํŠธ๋ฆฌ: Node์™€ Branch๋ฅผ ์ด์šฉํ•ด์„œ, ์‚ฌ์ดํด์„ ์ด๋ฃจ์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ์‹ค์ œ๋กœ ์–ด๋””์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋‚˜?
  • ํŠธ๋ฆฌ ์ค‘ ์ด์ง„ ํŠธ๋ฆฌ (Binary Tree) ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋กœ, ํƒ์ƒ‰(๊ฒ€์ƒ‰) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์„ ์œ„ํ•ด ๋งŽ์ด ์‚ฌ์šฉ๋จ

2. ์•Œ์•„๋‘˜ ์šฉ์–ด

์šฉ์–ด ์˜๋ฏธ ๊ธฐํƒ€
Node ํŠธ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ ์š”์†Œ (๋ฐ์ดํ„ฐ์™€ ๋‹ค๋ฅธ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์— ๋Œ€ํ•œ Branch ์ •๋ณด ํฌํ•จ)
Root Node ํŠธ๋ฆฌ ๋งจ ์œ„์— ์žˆ๋Š” ๋…ธ๋“œ
Level ์ตœ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ Level 0์œผ๋กœ ํ•˜์˜€์„ ๋•Œ, ํ•˜์œ„ Branch๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์˜ ๊นŠ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ„
Parent Node ์–ด๋–ค ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋ ˆ๋ฒจ์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ
Child Node ์–ด๋–ค ๋…ธ๋“œ์˜ ์ƒ์œ„ ๋ ˆ๋ฒจ์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ
Leaf Node (Terminal Node) Child Node๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š” ๋…ธ๋“œ
Sibling (Brother Node) ๋™์ผํ•œ Parent Node๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ
Depth ํŠธ๋ฆฌ์—์„œ Node๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ Level

3. ์ด์ง„ ํŠธ๋ฆฌ์™€ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Tree)

  • ์ด์ง„ ํŠธ๋ฆฌ: ๋…ธ๋“œ์˜ ์ตœ๋Œ€ Branch๊ฐ€ 2์ธ ํŠธ๋ฆฌ
  • ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Tree, BST): ์ด์ง„ ํŠธ๋ฆฌ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€์ ์ธ ์กฐ๊ฑด์ด ์žˆ๋Š” ํŠธ๋ฆฌ
    • ์™ผ์ชฝ ๋…ธ๋“œ๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’, ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ!

(์ถœ์ฒ˜: https://www.mathwarehouse.com/programming/gifs/binary-search-tree.php#binary-search-tree-insertion-node)

4. ์ž๋ฃŒ ๊ตฌ์กฐ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์žฅ์ ๊ณผ ์ฃผ์š” ์šฉ๋„

  • ์ฃผ์š” ์šฉ๋„: ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰(ํƒ์ƒ‰)
  • ์žฅ์ : ํƒ์ƒ‰ ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Œ

๋‹จ์ ์€ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด ํ›„์— ์‚ดํŽด๋ณด๊ธฐ๋กœ ํ•จ

์ด์ง„ํŠธ๋ฆฌ์™€ ์ •๋ ฌ๋œ ๋ฐฐ์—ด๊ฐ„์˜ ํƒ์ƒ‰ ๋น„๊ต

(์ถœ์ฒ˜: https://www.mathwarehouse.com/programming/gifs/binary-search-tree.php#binary-search-tree-insertion-node)

5. ํŒŒ์ด์ฌ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ํ•˜๊ธฐ

5.1. ๋…ธ๋“œ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

class Node:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None

MadeBy