ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

Queue?

๊ฐ€์žฅ ์ฒ˜์Œ์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ๋บ„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹(First in First Out) ํ˜•์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ

 

Queue์˜ ์—ฐ์‚ฐ

  • enqueue(data) : data๋ฅผ Queue์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•œ๋‹ค.

  • dequeue() : Queue์˜ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ data๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • peek() : pop()๊ณผ ๋‹ฌ๋ฆฌ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ data๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ œ๊ฑฐํ•˜์ง„ ์•Š๋Š”๋‹ค.

  • is_empty() : pop()์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€๋œ data๊ฐ€ ์กด์žฌํ•˜์—ฌ์•ผ ํ•˜๋Š”๋ฐ ์ด๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

Queue๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  • ์„ ์ž…์„ ์ถœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

    • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ, ์šฐ์„ ์ˆœ์œ„ ๋Œ€๊ธฐ์—ด, ํ”„๋ฆฐํ„ฐ ์ถœ๋ ฅ ์ฒ˜๋ฆฌ ๋“ฑ

  • BFS ๊ตฌํ˜„

    • Queue์˜ ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์„ ํ†ตํ•ด BFS๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • DFS์˜ ๊ฒฝ์šฐ Stack์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

Python์œผ๋กœ Queue ๊ตฌํ˜„ํ•˜๊ธฐ

class Queue:
    def __init__(self, size):
        self.size = size
        self.items = []

    def enqueue(self, data):
        if len(self.items) < self.size:
            self.items.append(data)
        else:
            return -1

    def dequeue(self):
        if self.is_empty():
            return None
        return self.items.pop(0)

    def peek(self):
        return self.items[0]

    def is_empty(self):
        return True if not self.items else False
  • Stack๊ณผ ๋‹ค๋ฅธ์ ์€ pop๊ณผ peek๋ฅผ ํ•  ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€