반응형

Python/자료구조 2

[자료구조] 우선순위 큐(Priority Queue), 힙(Heap)

우선순위 큐(Priority Queue) 우선순위 큐는 우선순위가 가장 높은 데이터를 먼저 삭제하는 자료구조이다. 데이터를 자료구조에 넣었다가 우선순위가 높은 순서로 처리하고 싶을 때 사용한다. 우선순위 큐는 리스트로 구현하거나 힙(Heap) 자료구조를 이용하여 구현할 수 있다. 먼저 힙을 통해 구현하는 방법을 알기 위해 힙 자료구조에 대해서 알아보자. 힙(Heap) - 힙이란 완전 이진 트리의 일종으로, 부모 노드의 값이 항상 자식 노드들의 값보다 크거나, 작아야 한다. - 루트 노드가 가장 큰 값을 가지면 최대 힙(Max Heap), 루트 노드가 가장 작은 값을 가지면 최소 힙(Min Heap)이라고 한다. - 힙에서는 항상 루트 노드를 제거한다. 힙 구성 함수 heapify() 힙에 원소가 들어오거..

Python/자료구조 2022.01.26

[자료구조] 스택(Stack)과 큐(Queue) 파이썬으로 구현하기

스택(Stack)과 큐(Queue)는 데이터를 임시 저장하기 위해 사용하는 자료구조이며, 데이터를 입력하고 출력하는 방향이 정해져 있다는 점이 서로 비슷하다. 스택(Stack) 스택은 선입후출(FILO) 방식을 따르는 자료구조이다. 선입후출(FILO)은 First In , Last Out 말그대로 먼저 들어온 데이터가 나중에 나가는 방식인데 박스 쌓기에 비유할 수 있다. 흔히 박스는 아래에서부터 위로 차곡차곡 쌓고 박스를 치울 때는 위에 있는 박스부터 내리는 것과 같다. 파이썬에서 스택을 이용할 때는 별도의 라이브러리를 사용할 필요가 없이 리스트 자료형을 사용하여 스택을 구현한다. append() 메소드는 리스트의 가장 뒤쪽에 데이터를 삽입하고, pop() 메소드는 리스트의 가장 뒤쪽에서 데이터를 꺼내기..

Python/자료구조 2022.01.10
반응형