파이썬 자료구조(2)
-
[Python 자료구조] Heap (힙)
파이썬에서의 Heap ?! Python에서의 Heap은 heapq 모듈과 Queue 모듈의 PriorityQueue 클래스를 통해 heapq를 제공합니다. 단, MinHeap으로 구현되어있어 가장 앞에 있는 원소가 가장 작은 원소가 됩니다. heapq 와 PriorityQueue 의 공통점과 차이점 공통점은 둘다 MinHeap으로 구현되어 있다는 점입니다. 즉 가장 앞에 있는 원소가 가장 작은 원소 입니다. 차이점은 PriorityQueue는 클래스이고, heapq는 모듈이라는 점입니다. 힙에 데이터를 넣으려면 !? PriorityQueue는 객체를 생성 후 메소드를 호출해야한다. heapq는 객체를 생성하지 않고 heapify(리스트 객체)처럼 함수를 호출하여 사용한다. Heap을 언제 사용하면 좋을까..
2021.01.09 -
[Python 자료구조] Queue (큐) 구현하기
Queue(큐) ?! 큐는 FIFO (First - In - First - Out) 로써 먼저 삽입된 item 순으로 꺼내어진다고 이해하면 쉬울거 같습니다. 큐의 종류에는 순차적인 큐와 원형 큐(원형으로 이루어진 Queue)가 있습니다. Python에서 Queue 구현하기 Python에서는 collections 모듈의 deque 를 통해 큐 자료구조를 구현합니다. Deque (덱) 객체 deque는 스택과 큐를 합친 자료구조로 가장자리에 원소를 넣거나 뺄 수 있습니다. deque([iterable[, maxlen]]) deque의 초기화 함수 (리스트, queue의 최대 길이를 넣을 수 있다) append(x) 원소 x를 deque 맨 오른쪽에 삽입 popleft() deque에 가장 왼쪽에 있는 원소를..
2021.01.06