8์ฅ ์ด์ง ํธ๋ฆฌ ์ฐ์ต๋ฌธ์ ์ ๋ต
1. ํธ๋ฆฌ์ ๋ํ ์ค๋ช 1~4์ ์๋ง์ ์ฉ์ด๋ฅผ ๋ค์ ์ค์์ ๊ณ ๋ฅด์์ค.
ํธ๋ฆฌ์ ๋งจ ์๋ฅผ '1'๋ผ๊ณ ํ๋ค. '1'๋ฅผ '2'0์ผ๋ก ๋๊ณ ๋๋ญ์์ ํด๋นํ๋ ์๋๋ก ๋ด๋ ค์ฌ์๋ก '2'์ด 1์ฉ ์ฆ๊ฐํ๋ค. ํธ๋ฆฌ์์ ๊ฐ ์์น๋ฅผ '3'๋ผ๊ณ ํ๋ค. ๊ฐ '3'๋ '4'๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.
- '1' = ๋ฃจํธ
- '2' = ๋ ๋ฒจ
- '3' = ๋ ธ๋
- '4' = ์์ง
2. ์ด์ง ํธ๋ฆฌ๋ฅผ ๋ชจ๋ ๊ณ ๋ฅด์์ค.
- ์ ๋ต : 1, 2, 3, 4
3. ๋ค์ ์ค 1~3 ์ค๋ช ์ ํด๋นํ๋ ๊ฒ์ ๊ณ ๋ฅด์์ค.
- 1 ๋ชจ๋ ๋ ธ๋๊ฐ ์ค๋ฅธ์ชฝ์ด๋ ์ผ์ชฝ์ผ๋ก ์ฐ๊ฒฐ๋ ํธ๋ฆฌ๋ค. -> ํธํฅ ์ด์ง ํธ๋ฆฌ
- 2 ๋ชจ๋ ๋ ธ๋๊ฐ ๊ฝ ์ฐจ ์๋ ์ํ์ ํธ๋ฆฌ๋ค. -> ํฌํ ์ด์ง ํธ๋ฆฌ
- 3 ๋ฒํธ ๋ถ์ฌ ์์๋ก ๋ ธ๋๊ฐ ๋ฐฐ์น๋๋ค. ๋ ธ๋๊ฐ ์ผ๋ถ ๋น์ด ์์ด๋ ๋๋ค. -> ์์ ์ด์ง ํธ๋ฆฌ
4. ์ด์ง ํธ๋ฆฌ์ ๋ ธ๋ ๊ตฌ์กฐ์ ๋ํ ์ค๋ช ์ค ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ๊ฒ์?
1. ๋ฐ์ดํฐ์ ๋งํฌ 2๊ฐ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
2. ๋งํฌ๋ ์ผ์ชฝ ๋งํฌ์ ์ค๋ฅธ์ชฝ ๋งํฌ ๋ ๊ฐ์ง๋ค.
3. ํ์ํ ๊ฒฝ์ฐ ๋งํฌ๋ฅผ 3๊ฐ ์ด์ ๊ตฌ์ฑํ ์๋ ์๋ค.
4. ๋ณดํต ์ผ์ชฝ ๋งํฌ, ๋ฐ์ดํฐ, ์ค๋ฅธ์ชฝ ๋งํฌ์ ์์๋ก ๊ตฌ์ฑํ๋ค.
- ์ ๋ต : 3
5. ์ด์ง ํธ๋ฆฌ์ ์ํ๋ ์ ์, ์ค์, ํ์ ์ธ ๊ฐ์ง๊ฐ ์๋ค. ๋ค์์ ์ด๋ค ์ํ์ ๋ํ ์ค๋ช ์ธ๊ฐ?
1. ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ๋ก ์ด๋
2. ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ๋ก ์ด๋
3. ํ์ฌ ๋
ธ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ์ ๋ต : ํ์ ์ํ
6. ๋ค์ ์ด์ง ํธ๋ฆฌ๋ฅผ ์ ์ ์ํ, ์ค์ ์ํ, ํ์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๊ฐ ์ฐ์์ค

- ์ ์ ์ํ : ํ์ฌ -> ์๋ผ -> ํ์ธ -> ์ฏ์ -> ๋ฌธ๋ณ -> ์ ๋ฏธ
- ์ค์ ์ํ : ํ์ธ -> ์๋ผ -> ์ฏ์ -> ํ์ฌ -> ์ ๋ฏธ -> ๋ฌธ๋ณ
- ํ์ ์ํ : ํ์ธ -> ์ฏ์ -> ์๋ผ -> ์ ๋ฏธ -> ๋ฌธ๋ณ -> ํ์ฌ
7. ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ง๊ณผ ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ๊ฒ์?
1. ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ๋ ๋ฃจํธ ๋
ธ๋๋ณด๋ค ๋ชจ๋ ์์ ๊ฐ์ ๊ฐ์ง๋ค.
2. ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ๋ ๋ฃจํธ ๋
ธ๋๋ณด๋ค ๋ชจ๋ ์์ ๊ฐ์ ๊ฐ์ง๋ค.
3. ๊ฐ ์๋ธ ํธ๋ฆฌ๋ 1, 2์ ํน์ง์ ๊ฐ๋๋ค.
4. ๋ชจ๋ ๋
ธ๋ ๊ฐ์ ํ์ํ๋ค๋ฉด ์ค๋ณต๋ ์๋ ์๋ค.
- ์ ๋ต : 2, 3, 4
8. ์ด์ง ํ์ ํธ๋ฆฌ์ ์ญ์ ๋์ ์ค์์ ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋?
1. ๋ฆฌํ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ
2. ์์ ๋
ธ๋๊ฐ ํ๋(์ผ์ชฝ)์ธ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ
3. ์์ ๋
ธ๋๊ฐ ํ๋(์ค๋ฅธ์ชฝ)์ธ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ
4. ์์ ๋
ธ๋๊ฐ ๋ ์๋ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ
- ์ ๋ต : 4
9. ๋ค์์ ์ด์ง ํ์ ํธ๋ฆฌ์์ ๋ฐ๋ณต์ ์ผ๋ก ์๋ฆฌ๋ฅผ ์ฐพ์๊ฐ๋ ์ฝ๋๋ค. 1~3์ ์ ํฉํ ์ฝ๋๋ฅผ ๋ค์์์ ๊ณ ๋ฅด์์ค.
name = 6
node = TreeNode()
node.data = name
current = root
while True:
if ๋น์นธ1 :
if current.left == None :
current.left = node
break
๋น์นธ2
else :
if current.right == None :
current.right = node
break
๋น์นธ3
- ์ ๋ต : ๋น์นธ1 = name < current.data
- ๋น์นธ2 = current = current.left
- ๋น์นธ3 = current = current.right
10. ์ด์ง ํ์ ํธ๋ฆฌ์ ์ฝ์ ์ํต ์ฝ๋์ ์ผ๋ถ๋ค. ๋น์นธ1์ ์๋ง์ ์ฝ๋๋?
node = TreeNode()
node.data = nameAry[0]
root = node
memory.append(node)
for name in ๋น์นธ1 :
node = TreeNode()
node.data = name
์๋ต...
- ์ ๋ต : nameAry[1:]
https://www.hanbit.co.kr/store/books/look.php?p_code=B4186876690
IT CookBook, ํ์ด์ฌ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ for Beginner
๊ธฐ๋ณธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๊ฒ ํ์ด๋ธ ์ ๋ฌธ์์ ๋๋ค. ๊ธฐ๋ณธ โ ๊ฐ๋จ ๊ตฌํ โ ์ผ๋ฐ ๊ตฌํ โ ์์ฉ ์์ผ๋ก ์ฒด๊ณ์ ์ผ๋ก ํ์ตํ ์ ์์ต๋๋ค.
www.hanbit.co.kr