알고리즘/자료구조

알고리즘/자료구조

[자료구조/Swift] 힙(Heap) 구현하기

힙에 대한 설명은 이전 포스팅을 참고해주세요. 힙의 구현 힙을 구현하는 자료구조는 배열으로, 배열의 첫 번째 인덱스는 사용되지 않는다. 고로 루트 노드는 인덱스 1이고 아래 노드로 내려갈수록 인덱스가 쭉쭉 추가가 된다.  힙에서 부모 노드와 자식 노드 간의 관계왼쪽 자식의 인덱스 = `(부모의 인덱스) * 2`오른쪽 자식의 인덱스 = `(부모의 인덱스) * 2 + 1`부모의 인덱스 = `(자식의 인덱스) / 2`이 점을 참고해서 구현해보자 - !  기본 틀 `Comparable` 프로토콜을 채택하여 비교가 가능한 데이터 타입을 받도록 구조체를 생성한다. struct Heap { private var heap: [T] = [] private let comparer: (T,T) -> (Bool) ..

시로-
'알고리즘/자료구조' 카테고리의 글 목록