๐Ÿงช ์ปดํ“จํ„ฐ๊ณผํ•™ : CS

[์ž๋ฃŒ๊ตฌ์กฐ] Stack๊ณผ Queue์˜ ๋น„๊ต (์ธํ„ฐ๋ทฐ ๋Œ€๋น„)

๊ฐœ๋ฐœ์ž HOON 2022. 10. 23. 16:09

 

๐Ÿ’ก 1. Stack(์Šคํƒ)์ด๋ž€?

 

https://velog.io/@humblechoi/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack-Queue

 

1. ์Šคํƒ : Stack์€ ๋จผ์ € ๋“ค์–ด๊ฐ„ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ์„ ์ž…ํ›„์ถœ(LIFO, Last In First Out)์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

2. ๊ตฌํ˜„ : Stack์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š”, ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š” ArrayList๋ณด๋‹ค๋Š” index๋ฅผ ์กฐ์ •ํ•˜๊ณ , ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํ•จ๊ป˜ Array๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค.

 

3. ์ฃผ์š” ์—ฐ์‚ฐ : 

1. push(์‚ฝ์ž…) : Stack์— ์ƒˆ๋กœ์šด item์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
2. pop(์‚ญ์ œ) : ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์š”์†Œ๋ฅผ returnํ•˜๊ณ , Stack์—์„œ ํ•ด๋‹น ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
3. peek(์ตœ์ƒ๋‹จ ์•„์ดํ…œ ๋ฐ˜ํ™˜) : ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์š”์†Œ๋ฅผ return ํ•œ๋‹ค. pop๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์Šคํƒ์—์„œ ํ•ด๋‹น ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š”๋‹ค.
+ top : ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” item์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ Stack Class์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์ด๋‹ค. isEmpty(), isFull(), peek() ๋“ฑ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

4. ์Šคํƒ์˜ ์‚ฌ์šฉ ์šฉ๋„ : DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ๋•Œ Stack ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

5. ์Šคํƒ์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ ๊ณณ : ๋ธŒ๋ผ์šฐ์ €์˜ '๋’ค๋กœ๊ฐ€๊ธฐ', ctrl + z ๋˜๋Œ๋ฆฌ๊ธฐ ์—ฐ์‚ฐ, Stack ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ

 

๐Ÿ’ก 2. Queue(ํ)๋ž€?

 

https://velog.io/@humblechoi/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack-Queue

 

1. ํ : Queue๋Š” ๋จผ์ € ๋“ค์–ด๊ฐ„ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ์„ ์ž…์„ ์ถœ(FIFO, First In First Out)์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

2. ๊ตฌํ˜„ : Queue๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ๋Š”, item์ด ์‚ญ์ œ๋œ ํ›„ ์•ž์œผ๋กœ ๋ชจ๋“  ์›์†Œ๋ฅผ ์•ž๋‹น๊ฒจ์•ผ ํ•˜๋Š” Array๋ณด๋‹ค๋Š”, ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ์„ ๋Š์–ด ๊ฐ์ฒด 1๊ฐœ๋งŒ ์ œ๊ฑฐํ•˜๋ฉด ๋˜๋Š” ArrayList๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๋‹ค. 

 

3. ์ฃผ์š” ์—ฐ์‚ฐ : 

1. enqueue (์‚ฝ์ž…) : Queue์— ์ƒˆ๋กœ์šด item์„ ์‚ฝ์ž…ํ•œ๋‹ค.
2. dequeue (์‚ญ์ œ) : Queue์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” item์„ ํ์—์„œ ์‚ญ์ œํ•˜๊ณ  returnํ•œ๋‹ค.

 

4. ํ์˜ ์‚ฌ์šฉ ์šฉ๋„ : BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ

 

5. ํ๊ฐ€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋œ ๊ณณ : ๋ฒ„ํผ, ํ”„๋ฆฐํ„ฐ ํ, CPU ์Šค์ผ€์ค„๋ง Ready ํ ๋“ฑ

 

 

๐Ÿ˜Ž ์ถœ์ฒ˜

[๋งํฌ] https://velog.io/@humblechoi/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack-Queue ([์ž๋ฃŒ๊ตฌ์กฐ] Stack & Queue)