문인철 교수님의 ‘데이터 구조 및 분석: Linear Structure and Dynamic Programming’ 수업
Queue
- Linked list 를 변형해서 만들 수 있는 구조
- Linked list 와 다르게 리스트 중간에 값을 추가하는게 불가능함
- FIFO: First in First Out
Enqueue
- 데이터 추가
- linked list 에서 가장 마지막 인스턴스에 새로운 데이터 삽입
Dequeue
- 데이터 삭제
- linked list 에서 가장 첫번째 인스턴스에 새로운 데이터 삭제
코드
class Queue:
linked_list = SinglyLinkedList()
def dequeue(self):
print(self.linked_list.get(0).value)
return self.linked_list.remove_node(0)
def enqueue(self, value):
self.linked_list.insert_node(value, self.linked_list.get_size())
queue = Queue()
queue.enqueue('a')
queue.enqueue('b')
queue.enqueue('c')
queue.dequeue() # a
queue.dequeue() # b