# list 이용
class Queue:
    def __init__(self):
        self.queue = []
    
    def enqueue(self, data):
        self.queue.append(data)
        
    def dequeue(self):
        if self.is_empty():
            return -1
        return self.queue.pop(0)
            
    def front(self):
				if self.is_empty():
				            return -1
        return self.queue[0]
        
    def is_empty(self):
        if len(self.queue) == 0:
            return True
        return False

# linked list 이용
class Queue:
    def __init__(self):
        self.head = None
        self.tail = None

    def enqueue(self, node):
        if self.head == None:
            self.head = node
            self.tail = node
        else:
            self.tail.next = node
            self.tail = self.tail.next

    def dequeue(self):
        if self.is_empty():
            return -1
        data = self.head.data
        self.head = self.head.next
        return data

    def front(self):
        if self.is_empty():
            return -1
        return self.head.data

    def is_empty(self):
        if self.head == None:
            return True
        return False

BEFORE


8강 스택, 스택의 구현

NEXT


10강 트리