์ž๋ฃŒ๊ตฌ์กฐ 2

[Data Structure] Tree

Tree - Node์™€ Edge๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ํŠน์ง• - ๊ฐ’์„ ๊ฐ€์ง„(Node)์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (Edge)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ. - ๋ฃจํŠธ ๋…ธ๋“œ : ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ(๊ทธ๋ฆผ์—์„œ 1) - ๋ชจ๋“  ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ผ๊ณ  ์นญํ•จ - ์‚ฌ์ดํด์ด ์กด์žฌํ•  ์ˆ˜ ์—†์Œ(์‚ฌ์ดํด์ด ์ƒ๊ธฐ๋ฉด ํŠธ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๋ž˜ํ”„) - ๋ฃจํŠธ์—์„œ ๋…ธ๋“œ ํ•œ๊ฐœ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” ์œ ์ผํ•จ - ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ N๊ฐœ์ผ ๋•Œ, ๊ฐ„์„ ์€ N-1๊ฐœ ํŠธ๋ฆฌ ์ˆœํšŒ ๋ฐฉ์‹ 1. ์ „์œ„ ์ˆœํšŒ(pre-order) : root → ์™ผ์ชฝ ์ž์‹ → ์˜ค๋ฅธ์ชฝ ์ž์‹ 2. ์ค‘์œ„ ์ˆœํšŒ(in-order) : ์™ผ์ชฝ ์ž์‹ → root → ์˜ค๋ฅธ์ชฝ ์ž์‹ 3. ํ›„์œ„ ์ˆœํšŒ(post-order) : ์™ผ์ชฝ์ž์‹ → ์˜ค๋ฅธ์ชฝ ์ž์‹ → root ํŠธ๋ฆฌ ์žฅ์  ๋ฐ ํ™œ์šฉ ์˜ˆ์‹œ [์žฅ์ ] - ๊ณ„์ธต์  ..

[Data Structure] Stack and Queue

์Šคํƒ(Stack) ํŠน์ง• ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ํ•œ ๊ณณ(๋ฐฉํ–ฅ)์œผ๋กœ ์ œํ•œ์ ์ž„ LIFO(Last In First Out, ํ›„์ž…์„ ์ถœ) : ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๊ฒƒ์ด ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ด ์˜ˆ์‹œ : ํ•จ์ˆ˜์˜ ์ฝœ์Šคํƒ, ์—ฐ์‚ฐ์ž ํ›„์œ„ํ‘œ๊ธฐ, ๋ฌธ์ž์—ด ์—ญ์ˆœ, DFS ์žฅ์  ๋ฐ ํ™œ์šฉ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ•„์š”๋กœํ•˜๋Š” ์†Œ์Šค์ฝ”๋“œ์— ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ ๊ฐ€๋Šฅ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฐฉ๋ฌธ๊ธฐ๋ก์—์„œ ์Šคํƒ์˜ ํŠธ๊น…์„ ํ™œ์šฉํ•ด '๋’ค๋กœ๊ฐ€๊ธฐ'๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์ทจ์†Œ(Undo)์— ํ™œ์šฉ๋จ ํ(Queue) ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ํ•œ ์ชฝ ๋(front,rear)๋กœ ์ œํ•œ ํ์˜ ๊ฐ€์žฅ ์ฒซ ์›์†Œ๋ฅผ front , ๊ฐ€์žฅ ๋ ์›์†Œ๋ฅผ rear ํ๋Š” ๋“ค์–ด์˜ฌ ๋•Œ rear๋กœ ๋“ค์–ด์˜ค์ง€๋งŒ ๋‚˜์˜ฌ๋•Œ๋Š” front๋ถ€ํ„ฐ ๋น ์ง€๋Š” ํŠน์„ฑ FIFO(First In First Out, ์„ ์ž…์„ ์ถœ) : ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๊ฒƒ์ด..