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

[์ž๋ฃŒ ๊ตฌ์กฐ] - ํ ์ž๋ฃŒ๊ตฌ์กฐ :: Queue Data Structure

by Wonit 2020. 6. 10.

ํ (Queue)

ํ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” Abstract Data Type ์œผ๋กœ ์ˆœ์ฐจ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, FIFO ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

  • F : first
  • I : In
  • F : first
  • O : out

์•ž์—์„œ ๋ดค๋˜ ์Šคํƒ๊ณผ๋Š” ๋‹ค๋ฅธ ํ˜•ํƒœ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ, ์ข€ ๋” ์•Œ์•„๋ณด์ž.

ํ์˜ ๊ธฐ๋ณธ ์›๋ฆฌ

ํ๋Š” ์ผ๋‹จ ์šฐ๋ฆฌ๊ฐ€ ์Œ์‹์ ์— ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์ค„์„ ์„œ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

Bob๊ณผ Steve๋ผ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์„ ๋•Œ, Steve๊ฐ€ ๋จผ์ € ์ค„์„ ์„œ ์žˆ์—ˆ๋‹ค๋ฉด ๋‹น์—ฐํžˆ Steve๊ฐ€ ์Œ์‹์ ์— ๋จผ์ € ๋“ค์–ด๊ฐ„๋‹ค. ์ด ๊ฒƒ์ด ๋ฐ”๋กœ ํ์˜ ์›๋ฆฌ์ด๋‹ค.

ํ์˜ ์—ฐ์‚ฐ

Enqueue

enqueue๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ด๋ฉฐ, queue์˜ ๊ธธ์ด๋งŒํผ ๊ฐ”์„ ๋•Œ ๋” ์ด์ƒ ์ถ”๊ฐ€ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†์„ ๋•Œ ๊นŒ์ง€ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค.

Dequeue

dequeue๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ด๋ฉฐ, queue๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ ๊นŒ์ง€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ์˜ ์‚ฌ์šฉ

ํ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

  • cpu์˜ ์ˆœ์ฐจ์  ์ž‘์—… ์Šค์ผ€์ค„๋ง
  • ํ”„๋ฆฐํ„ฐ์˜ ์ธ์‡„ ๋Œ€๊ธฐ ์ž‘์—…
  • ์ž…๋ ฅ Buffer๊ณผ ์ถœ๋ ฅ Buffer

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

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

๋Œ“๊ธ€