์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๋ฌธ์ œํ’€์ด/์ž๋ฃŒ๊ตฌ์กฐ

์Šคํƒ (stack) ์Šคํƒ์€ ํ•œ ์ชฝ ๋์—์„œ๋งŒ ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ๋บ„ ์ˆ˜ ์žˆ๋Š” ์„ ํ˜• ๊ตฌ์กฐ(LIFO - Last In First Out)์ด๋‹ค. ๋งจ ์œ„์ชฝ ์•„์ดํ…œ์„ top์ด๋ผ ํ•œ๋‹ค. ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š”๊ฒƒ์„ push, ๋„ฃ์–ด๋‘” ์ž๋ฃŒ๋ฅผ ๊บผ๋‚ด๋Š” ๊ฒƒ์„ pop์ด๋ผ ํ•œ๋‹ค. pop์‹œ ๊บผ๋‚ด์ง€๋Š” ์ž๋ฃŒ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— pushํ•œ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋ณดํ†ต ์Šคํƒ์€ ์œ„๊ฐ€ ๋šซ๋ฆฐ ๋น„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์ƒํ•˜๋ฉด ํŽธํ•˜๋‹ค. ์Šคํƒ์ด ๊ฝ‰์ฐจ๋ฉด Stack Overflow , ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋ฅผ Underflow๋ผ ํ•œ๋‹ค.
ํ (Queue) FIFO(First In First Out) ์„ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. ( ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ„๋‹ค ) ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…ํ•˜๋Š” ๋ถ€๋ถ„์€ rear ์‚ญ์ œํ•˜๋Š” ๋ถ€๋ถ„์„ fornt ๋ผ ๋ถ€๋ฅธ๋‹ค. ํ์˜ ์ข…๋ฅ˜๋Š” ์„ ํ˜• ํ(Linear Queue), ์›ํ˜• ํ(Circular Queue) ๋“ฑ์ด ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ๋Š” enqueue, ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” dequeue ๋“ฑ์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์ž„์‹œ๋กœ ์ €์žฅํ•ด๋‘๋Š” ๋ฒ„ํผ(buffer)๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ push, shift๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‚˜ shift์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์ตœ๋Œ€ O(n)์ด๋‹ˆ ์ฃผ์˜ํ•˜์ž. const arr = []; //enqueue arr.push('test1'); arr.push('test2..
YunCow
'์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๋ฌธ์ œํ’€์ด/์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก