๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Data Structure

[Data Structure] ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)๋ž€?

by Fomagran ๐Ÿ’ป 2021. 11. 17.
728x90
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค!

 

์˜ค๋Š˜์€ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰,์‚ฝ์ž…,์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)๋ž€? ๐Ÿค”

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๋ญ”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด์ง„ ํŠธ๋ฆฌ๋Š” ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ, ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ๊ฐ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค.... - ์œ„ํ‚ค ๋ฐฑ๊ณผ -

 

์ฆ‰, ๋…ธ๋“œ๋งˆ๋‹ค ์ž์‹์ด 2๊ฐœ ์ดํ•˜์ธ ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. (์ž์‹์ด ์—†์–ด๋„ ๋˜๊ณ , ํ•˜๋‚˜์—ฌ๋„ ๋˜๊ณ , ๋‘ ๊ฐœ์—ฌ๋„ ๋ฉ๋‹ˆ๋‹ค.)

 

์ถœ์ฒ˜:์œ„ํ‚ค๋ฐฑ๊ณผ


์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ(Binary Search Tree)๋ž€? ๐Ÿง

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ์ด ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค.
โœ…  ๊ฐ ๋…ธ๋“œ์— ๊ฐ’์ด ์žˆ๋‹ค.
โœ…  ๊ฐ’๋“ค์€ ์ „์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค.
โœ…  ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๊ทธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘์€ ๊ฐ’๋“ค์„ ์ง€๋‹Œ ๋…ธ๋“œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
โœ…  ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๊ทธ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฐ ๊ฐ’๋“ค์„ ์ง€๋‹Œ ๋…ธ๋“œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
โœ…  ์ขŒ์šฐ ํ•˜์œ„ ํŠธ๋ฆฌ๋Š” ๊ฐ๊ฐ์ด ๋‹ค์‹œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—ฌ์•ผ ํ•œ๋‹ค.   
- ์œ„ํ‚ค ๋ฐฑ๊ณผ -

 

์ฆ‰, ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด ์ด์ง„ ํŠธ๋ฆฌ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ ์ž์‹์˜ ์™ผ์ชฝ ๊ฐ’์ด ๋ถ€๋ชจ๋ณด๋‹ค ์ž‘๊ณ  ์˜ค๋ฅธ์ชฝ ๊ฐ’์ด ๋ถ€๋ชจ๋ณด๋‹ค ํฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์œผ๋กœ ๋˜์–ด ์žˆ๋Š”๊ฒŒ ๋ฐ”๋กœ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์š”!

 

์ถœ์ฒ˜: https://www.acmicpc.net/problem/18240


Time Complexity (์‹œ๊ฐ„๋ณต์žก๋„)

 

์‹คํ–‰ ์‹œ๊ฐ„์€ ํ‰๊ท ์ ์œผ๋กœ ํŠธ๋ฆฌ์˜ ๋†’์ด๋งŒํผ ๐šฏ(logโ‚‚N)์ด ๊ฑธ๋ฆฌ์ง€๋งŒ

 

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ์ชฝ์œผ๋กœ ๋ชฐ๋ฆด ๊ฒฝ์šฐ(์ตœ์•…์˜ ๊ฒฝ์šฐ) O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 


Search(ํƒ์ƒ‰)

 

[3,7,4,5,1,8,2,6]๋กœ ๋˜์–ด์žˆ๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—์„œ ํƒ์ƒ‰ํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

1. ์ฐพ์œผ๋ ค๋Š” ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

2. ์—†๋‹ค๋ฉด nil์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ 5๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

 

 

๋ฃจํŠธ ๋…ธ๋“œ์ธ 3๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ์— ์žˆ๊ฒ ์ฃ ? 7๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค.

 

 

7๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์™ผ์ชฝ์— ์žˆ๊ฒ ์ฃ ? 4๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค.

 

 

4๋ณด๋‹ค ํฌ๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

5๋ฅผ ์ฐพ์•˜์œผ๋ฏ€๋กœ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

 


Insertion(์‚ฝ์ž…)

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

 

1. ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด ๊ทธ๋ƒฅ ์‚ฝ์ž…

 

2. ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ˜„์žฌ ์ˆซ์ž๋ณด๋‹ค ํฌ๋ฉด ์˜ค๋ฅธ์ชฝ,์ž‘์œผ๋ฉด ์™ผ์ชฝ์œผ๋กœ ์ž์‹์œผ๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค.

 

3. ์ž์‹์ด ์—†์œผ๋ฉด ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

 

[3,7,4,5,1,8,2,6]์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํŠธ๋ฆฌ์— ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋‹ˆ 3์„ ์‚ฝ์ž…ํ•ด์ค๋‹ˆ๋‹ค.

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž์ธ 7์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅธ์ชฝ์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 4์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ,7๋ณด๋‹ค ์ž‘์œผ๋‹ˆ๊น ์™ผ์ชฝ์œผ๋กœ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ,7๋ณด๋‹ค ์ž‘์œผ๋‹ˆ๊น ์™ผ์ชฝ,4๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 1์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์™ผ์ชฝ์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 8์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ,7๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 2์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์™ผ์ชฝ,1๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

๊ทธ ๋‹ค์Œ ์ˆซ์ž๋Š” 6์ž…๋‹ˆ๋‹ค.

 

3๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ,7๋ณด๋‹ค ์ž‘์œผ๋‹ˆ๊น ์™ผ์ชฝ,4๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ,5๋ณด๋‹ค ํฌ๋‹ˆ๊น ์˜ค๋ฅธ์ชฝ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

 


Deletion(์‚ญ์ œ)

 

์‚ญ์ œํ•˜๋Š” ๊ณผ์ •์€ ํƒ์ƒ‰์ด๋‚˜ ์‚ฝ์ž…๋ณด๋‹ค ์‚ด์ง ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

 

์ด 3๊ฐ€์ง€์˜ ์ผ€์ด์Šค๊ฐ€ ์žˆ๋Š”๋ฐ์š”.

 

1. ์ž์‹์ด ์—†๋Š” ๊ฒฝ์šฐ

 

2. ์ž์‹์ด ํ•œ ๊ฐœ์ธ ๊ฒฝ์šฐ

 

3. ์ž์‹์ด ๋‘ ๊ฐœ์ธ ๊ฒฝ์šฐ

 

1. ์ž์‹์ด ์—†๋Š” ๊ฒฝ์šฐ

 

๋จผ์ € ์ž์‹์ด ์—†๋Š” ๊ฒฝ์šฐ์ธ 2๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

 

 

๊ทธ๋ƒฅ ์‚ญ์ œํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

2. ์ž์‹์ด ํ•œ ๊ฐœ์ธ ๊ฒฝ์šฐ

 

์ž์‹์ด ํ•œ ๊ฐœ์ธ ๊ฒฝ์šฐ์ธ 4๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

์‚ญ์ œํ•˜๊ณ  ํ•ด๋‹น ์œ„์น˜์— ์ž์‹์„ ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

 

3. ์ž์‹์ด ๋‘ ๊ฐœ์ธ ๊ฒฝ์šฐ

 

์ž์‹์ด ๋‘ ๊ฐœ์ธ ๊ฒฝ์šฐ์ธ 7์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€์ธ๋ฐ์š”.

 

1. ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋Œ€์ฒดํ•œ๋‹ค.

 

2. ์™ผ์ชฝ ์ž์‹ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋Œ€์ฒดํ•œ๋‹ค.

 

์ €๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์ธ 8์„ ๋Œ€์ฒดํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€