๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์ž๋ฃŒ ๊ตฌ์กฐ] - ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ :: Stack Data Structure

by Wonit 2020. 6. 10.

Stack

์Šคํƒ์€ Abstract Data Type์œผ๋กœ ์ถ”์ƒ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

 

์Šคํƒ์€ ํ›„์ž… ์„ ์ถœ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, LIFO๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค.

  • L : last
  • I : in
  • F : frist
  • O : out

์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ”„๋ง๊ธ€์Šค๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

ํ”„๋ง๊ธ€์Šค

์Šคํƒ์˜ ๊ธฐ๋ณธ์›๋ฆฌ

ํ”„๋ง๊ธ€์Šค์—๋Š” ๊ฐ์ž์นฉ์ด ์ผ์ •ํ•œ ๋ชจ์–‘์œผ๋กœ ๋‹ด๊ฒจ์žˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ํ”„๋ง๊ธ€์Šค๋ฅผ ๊บผ๋‚ด๋จน๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋– ํ•œ ์ œ์กฐ ๊ณต์ •์—์„œ๋Š” ํ”„๋ง๊ธ€์Šค์— ๋“ค์–ด์žˆ๋Š” ๋‚ด์šฉ๋ฌผ์„ ํ”„๋ง๊ธ€์Šค ํ†ต์— ๋‹ด์•„์•ผ ํ•œ๋‹ค.


๊ทธ๋Ÿผ ๊ณผ์ž๋ฅผ ๋งŒ๋“ค๊ณ  ํ†ต์— ๋‹ด์„ ๋•Œ ์ฒ˜์Œ์— ๋‹ด๊ธฐ๋Š” ๊ณผ์ž๊ฐ€ ํ”„๋ง๊ธ€์Šค ํ†ต์— ๊ฐ€์žฅ ์•„๋ž˜์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜๊ณ  ๋งˆ์ง€๋ง‰์— ๋‹ด๋Š” ๊ณผ์ž๊ฐ€ ํ”„๋ง๊ธ€์Šค ํ†ต์— ๊ฐ€์žฅ ์œ„์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜์–ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋จน๊ฒŒ๋œ๋‹ค.


์ด๊ฒƒ์ด ๋ฐ”๋กœ ์Šคํƒ์˜ ๊ธฐ๋ณธ ์›๋ฆฌ์™€ ์ •ํ™•ํžˆ ๋ถ€ํ•ฉํ•œ๋‹ค.

์Šคํƒ์˜ ์—ฐ์‚ฐ

Push

์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์„ Push ์—ฐ์‚ฐ์ด๋ผ๊ณ  ํ•œ๋‹ค.


Push ์—ฐ์‚ฐ์€ ์Šคํƒ์ด ๊ฝ‰ ์ฐจ๊ธฐ ์ „๊นŒ์ง€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ์Šคํƒ์ด ๊ฝ‰ ์ฐฌ๋‹ค๋ฉด, ์ˆ˜ํ–‰์„ ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค.

Pop

์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์„ Pop ์—ฐ์‚ฐ์ด๋ผ๊ณ  ํ•œ๋‹ค.


Pop ์—ฐ์‚ฐ์€ ์Šคํƒ์ด ๋น„์–ด์žˆ์ง€ ์•Š์„ ๋•Œ ๊นŒ์ง€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด, ์ˆ˜ํ–‰์„ ๋ฉˆ์ถ”๊ฒŒ ๋œ๋‹ค.

 

์ถœ์ฒ˜ : https://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm

์Šคํƒ์˜ ์‚ฌ์šฉ

  • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋’ค๋กœ๊ฐ€๊ธฐ
  • ์ˆ˜์‹ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ
  • JVM์˜ ๋ฉ”๋ชจ๋ฆฌ
  • ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ
    ๋“ฑ๋“ฑ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

Java๋กœ Stack ๊ตฌํ˜„ํ•˜๊ธฐ

์Šคํƒ์„ Java๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜-PS Java ์—์„œ ์Šคํƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

๋Œ“๊ธ€