힙
힙은 값을 포함하는 "노드"로 이루어진 데이터 구조입니다. 일반적인 힙에는 맨 위에 루트 노드가 있으며, 바로 아래에 두 개 이상의 자식 노드가 있을 수 있습니다. 각 노드에는 두 개 이상의 자식 노드가 있을 수 있으므로, 힙은 자식 노드가 추가될 때마다 더 넓어집니다. 시각적으로 표시하면 힙은 거꾸로 뒤집힌 트리처럼 보이며, 전체적인 모양도 힙과 비슷합니다.
힙의 각 노드에는 두 개 이상의 자식 노드가 있을 수 있지만(이를 "자식"이라고도 함), 대부분의 힙은 각 노드에 자식 노드를 두 개만 허용합니다. 이러한 유형의 힙을 이진 힙이라고도 하며, 정렬된 데이터를 저장하는 데 사용할 수 있습니다. 예를 들어, "이진 최대 힙"은 루트 노드에 가장 큰 값을 저장합니다. 두 번째와 세 번째로 큰 값은 루트 노드의 자식 노드에 저장됩니다. 트리 전체에서 각 노드는 두 자식 노드 중 어느 것보다도 큰 값을 가집니다. "이진 최소 힙"은 그 반대이며, 루트 노드에 가장 작은 값을 저장하고 각 노드는 자식 노드보다 작은 값을 가집니다.
컴퓨터 과학에서 힙은 간단한 다이어그램으로 그려지는 경우가 많습니다. 하지만 실제로 힙에 데이터를 저장하는 일은 더 복잡합니다. 힙을 만들려면 프로그래머가 알고리즘을 개별적으로 작성하여 데이터를 삽입하고 삭제해야 합니다. 힙에 삽입된 값은 일반적으로 배열에 저장되며, 프로그램에서 이 배열을 참조할 수 있습니다. 힙의 데이터는 이미 정렬되어 있으므로 특정 값을 효율적으로 검색할 수 있습니다.
NOTE: "힙"은 동적으로 할당된 메모리를 설명하는 데 사용되는 프로그래밍 용어이기도 합니다. 이 메모리 블록은 실행 중인 애플리케이션에서 액세스할 수 있습니다. 힙의 메모리는 동적으로 할당되므로 사용 중인 메모리의 양에 따라 크기가 늘어나거나 줄어들 수 있습니다.
지식 테스트하기