Stack
์คํ์ Abstract Data Type์ผ๋ก ์ถ์ ์๋ฃํ์ผ๋ก ๋ถ๋ฅ๋๋ค.
์คํ์ ํ์ ์ ์ถ ์๋ฃ๊ตฌ์กฐ๋ก, LIFO๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
- L : last
- I : in
- F : frist
- O : out
์คํ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค๋ฉด ์ฝ๊ฒ ํ๋ง๊ธ์ค๋ฅผ ์๊ฐํด๋ณด์.
์คํ์ ๊ธฐ๋ณธ์๋ฆฌ
ํ๋ง๊ธ์ค์๋ ๊ฐ์์นฉ์ด ์ผ์ ํ ๋ชจ์์ผ๋ก ๋ด๊ฒจ์๋ค.
์ฐ๋ฆฌ๊ฐ ํ๋ง๊ธ์ค๋ฅผ ๊บผ๋ด๋จน๊ธฐ ์ํด์๋ ์ด๋ ํ ์ ์กฐ ๊ณต์ ์์๋ ํ๋ง๊ธ์ค์ ๋ค์ด์๋ ๋ด์ฉ๋ฌผ์ ํ๋ง๊ธ์ค ํต์ ๋ด์์ผ ํ๋ค.
๊ทธ๋ผ ๊ณผ์๋ฅผ ๋ง๋ค๊ณ ํต์ ๋ด์ ๋ ์ฒ์์ ๋ด๊ธฐ๋ ๊ณผ์๊ฐ ํ๋ง๊ธ์ค ํต์ ๊ฐ์ฅ ์๋์ ์์นํ๊ฒ ๋๊ณ ๋ง์ง๋ง์ ๋ด๋ ๊ณผ์๊ฐ ํ๋ง๊ธ์ค ํต์ ๊ฐ์ฅ ์์ ์์นํ๊ฒ ๋์ด์ ์ฐ๋ฆฌ๊ฐ ์ฒ์์ผ๋ก ๋จน๊ฒ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ์คํ์ ๊ธฐ๋ณธ ์๋ฆฌ์ ์ ํํ ๋ถํฉํ๋ค.
์คํ์ ์ฐ์ฐ
Push
์คํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ธฐ ์ํด์ ์ํํ๋ ์ฐ์ฐ์ Push ์ฐ์ฐ์ด๋ผ๊ณ ํ๋ค.
Push ์ฐ์ฐ์ ์คํ์ด ๊ฝ ์ฐจ๊ธฐ ์ ๊น์ง ์ฐ์ฐ์ ์ํํ๋๋ฐ ๋ง์ฝ ์คํ์ด ๊ฝ ์ฐฌ๋ค๋ฉด, ์ํ์ ๋ฉ์ถ๊ฒ ๋๋ค.
Pop
์คํ์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ธฐ ์ํด์ ์ํํ๋ ์ฐ์ฐ์ Pop ์ฐ์ฐ์ด๋ผ๊ณ ํ๋ค.
Pop ์ฐ์ฐ์ ์คํ์ด ๋น์ด์์ง ์์ ๋ ๊น์ง ์ฐ์ฐ์ ์ํํ๋๋ฐ ๋ง์ฝ ์คํ์ด ๋น์ด์๋ค๋ฉด, ์ํ์ ๋ฉ์ถ๊ฒ ๋๋ค.
์คํ์ ์ฌ์ฉ
- ์น ๋ธ๋ผ์ฐ์ ์ ๋ค๋ก๊ฐ๊ธฐ
- ์์ ๊ดํธ ๊ฒ์ฌ
- JVM์ ๋ฉ๋ชจ๋ฆฌ
- ๋ฌธ์์ด ๋ค์ง๊ธฐ
๋ฑ๋ฑ์์ ์ฌ์ฉ๋๋ค.
Java๋ก Stack ๊ตฌํํ๊ธฐ
์คํ์ Java๋ก ๊ตฌํํด๋ณด๊ณ ์ถ๋ค๋ฉด ์๊ณ ๋ฆฌ์ฆ-PS Java ์์ ์คํ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ ์ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
๋๊ธ