์คํ (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..