본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶
Data/python·알고리즘

[큐와 스택] queue와 stack

by 징여 2018. 9. 24.
반응형

Queue

class Queue:
    def __init__(self):
        self.items = []
    def enqueue(self, item):
        self.items.insert(0, item)
    def dequeue(self):
        self.items.pop()

    def print(self):
        print(self.items)

    def size(self):
        return len(self.items)

    def clear(self):
        return self.items == []​

FIFO 구조로, 롤에서도 등장한다(?)

큐잡혔다!!!!!!

"먼저 줄을 선 사람이 먼저 나가도록 하는 것"

만약에 먼저 큐를 돌렸는데, 다른사람이 잡힌다고 해봐라 얼마나 열받는가 ㅂㄷㅂㄷ..

 

queue는 enqueue와 dequeue를 이용하여 구분된다. (enqueue는 insert, dequeue는 pop)

 

Stack

FILO구조로 push와 pop

- stack overflow

스택이 가득 찼을때, 더 넣을 경우 담을 공간이 없기 때문에 오류를 발생시킨다.

- stack underflow

스택에 아무것도 없는데, pop할 경우

class Stack:
    def __init__(self):
        self.items =[]
        self.max = 5
    def push(self, item):
        if len(self.items) < self.max:
            self.items.append(item)
        else:
            print("stack overflow")

    def pop(self):
        if len(self.items) == 0:
            print("stack underflow")
        else:
            self.items.pop()

    def print(self):
        print(self.items)

    def clear(self):
        return self.items == []

    def size(self):
        return len(self.items)

 

 

 

반응형

댓글