[์ž๋ฃŒ๊ตฌ์กฐ]Java - Binary Search Tree(์ด์ง„ ํƒ์ƒ‰ํŠธ๋ฆฌ) ๊ฐœ๋… + ๊ตฌํ˜„
ยท
Algorithm/KBro Study
Binary Search Tree๋ž€? Binary(์ด์ง„) Search(ํƒ์ƒ‰) Tree(ํŠธ๋ฆฌ)๊ฐ€ ํ•ฉ์ณ์ง„ ๊ฒƒ์œผ๋กœ, ์ฆ‰, ์ด๋ถ„ํ™”๋œ ํƒ์ƒ‰์„ ์œ„ํ•œ(ํ˜น์€ ํŠนํ™”๋œ) ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๋Š” ๋œป์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํŠธ๋ฆฌ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ? ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ Tree ๊ตฌ์กฐ๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๊ฑฐ๊พธ๋กœ ๋ณด๋ฉด ๋‚˜๋ฌด๊ฐ™์ด ์ƒ๊ฒจ์„œ ๊ทธ๋ ‡๊ฒŒ ๋ถ€๋ฅธ๋‹ค๊ณ  ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ช‡ ๊ฐ€์ง€ ์•Œ์•„์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, ๊ทธ ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ถ€๋ชจ ๋…ธ๋“œ(parent node) : ์ž๊ธฐ ์ž์‹ (๋…ธ๋“œ)๊ณผ ์—ฐ๊ฒฐ ๋œ ๋…ธ๋“œ ์ค‘ ์ž์‹ ๋ณด๋‹ค ๋†’์€ ๋…ธ๋“œ๋ฅผ ์˜๋ฏธ (ex. F์˜ ๋ถ€๋ชจ๋…ธ๋“œ : B) ์ž์‹ ๋…ธ๋“œ(child node) : ์ž๊ธฐ ์ž์‹ (๋…ธ๋“œ)๊ณผ ์—ฐ๊ฒฐ ๋œ ๋…ธ๋“œ ์ค‘ ์ž์‹ ๋ณด๋‹ค ๋‚ฎ์€ ๋…ธ๋“œ๋ฅผ ์˜๋ฏธ (ex. C์˜ ์ž์‹๋…ธ๋“œ : G, H) ๋ฃจํŠธ ๋…ธ๋“œ (root node) : ์ผ๋ช… ๋ฟŒ๋ฆฌ ๋…ธ๋“œ๋ผ๊ณ  ํ•˜๋ฉฐ ๋ฃจํŠธ ๋…ธ๋“œ๋Š”..
[์ž๋ฃŒ๊ตฌ์กฐ] ์ž๋ฐ” LinkedList(์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ)?
ยท
Algorithm/KBro Study
LinkedList๋ž€ ๋ง๊ทธ๋Œ€๋กœ ๊ฐ ๋…ธ๋“œ๋“ค์ด ํ•œ์ค„๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๊ตฌ์กฐ๋ฆฌ์ŠคํŠธ(์ž๋ฃŒ์˜ ์ฃผ์†Œ๊ฐ’์œผ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๊ตฌ์กฐ)๋ฅผ ๋งํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋…ธ๋“œ๋“ค์€ ๋ฐ์ดํ„ฐ์™€ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋•Œ ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์ด์ „๋…ธ๋“œ์™€ ๋‹ค์Œ ๋…ธ๋“œ์™€์˜ ์—ฐ๊ฒฐ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œํ•˜๋”๋ผ๋„ ์ „์ฒด์˜ ์ธ๋ฑ์Šค๊ฐ€ ํ•œ ์นธ์”ฉ ๋’ค๋กœ ๋ฐ€๋ฆฌ๊ฑฐ๋‚˜ ๋‹น๊ฒจ์ง€๋Š” ์ผ์ด ์—†๊ธฐ์— ArrayList์— ๋น„ํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‚˜, ์ธ๋ฑ์Šค๊ฐ€ ์—†๊ธฐ์— ํŠน์ • ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆœ์ฐจ ํƒ์ƒ‰์ด ํ•„์š”๋กœ ํ•˜์—ฌ ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋–จ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํƒ์ƒ‰ ๋˜๋Š” ์ •๋ ฌ์„ ์ž์ฃผ ํ•˜๋Š” ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€/์‚ญ์ œ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. LinkedList๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.(ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์ด ํฌ์ธํ„ฐ,..