스택과 힙 간의 차이

Anonim

스택 대 힙

스택은 목록 항목의 삽입 및 삭제를 한쪽 끝에 만 수행 할 수있는 정렬 된 목록입니다. 상단. 이러한 이유 때문에 스택은 LIFO (Last in First Out) 데이터 구조로 간주됩니다. 힙은 트리를 기반으로하는 특수한 데이터 구조이며 힙 속성이라는 특수한 속성을 만족시킵니다. 또한 힙은 완전한 나무입니다. 즉 나무의 잎 사이에 틈이 없음을 의미합니다. 이자형. 전체 트리에서 모든 레벨은 트리에 새 레벨을 추가하기 전에 채워지며 주어진 레벨의 노드는 왼쪽에서 오른쪽으로 채워집니다.

스택이란 무엇입니까? 앞에서 언급했듯이 스택은 최상위라고하는 한쪽 끝에서만 요소가 추가되고 제거되는 데이터 구조입니다. 스택은 push 및 pop이라는 두 가지 기본 작업 만 허용합니다. 푸시 연산은 스택 맨 위에 새 요소를 추가합니다. pop 연산은 스택의 맨 위에서 요소를 제거합니다. 스택이 이미 가득차면 푸시 작업이 수행 될 때 스택 오버플로로 간주됩니다. 이미 비어있는 스택에서 팝 연산이 수행되면 스택 언더 플로우로 간주됩니다. 스택에서 수행 할 수있는 연산 수가 적기 때문에 제한된 데이터 구조로 간주됩니다. 또한 push 및 pop 작업이 정의되는 방식에 따라 스택에 마지막으로 추가 된 요소가 먼저 스택에서 빠져 나옵니다. 따라서 스택은 LIFO 데이터 구조로 간주됩니다.

힙이란 무엇입니까?

앞서 언급했듯이 힙은 힙 속성을 만족하는 완전한 트리입니다. 힙 속성은 y가 x의 자식 노드이면 노드 x에 저장된 값은 노드 y에 저장된 값보다 커야합니다 (즉, 값 (x) ≥ 값 (y)). 이 속성은 가장 큰 값을 가진 노드가 항상 루트에 위치한다는 것을 의미합니다. 이 속성을 사용하여 생성 된 힙을 최대 힙이라고합니다. 힙 속성에는 이와 반대의 다른 변형이 있습니다. (즉, 값 (x) ≤ 값 (y)). 즉, 가장 작은 값을 가진 노드가 항상 루트에 배치되므로 최소 힙이라고합니다. 최소 힙 (최소 힙) 또는 최대 (최대 힙) 찾기, 최소 (최소 힙) 또는 최대 (최대 힙) 삭제, 증가 (최대 -heaps) 또는 감소 (min-heaps) 키 등을 포함합니다.

스택과 힙의 차이점은 무엇입니까?

스택과 힙의 주요 차이점은 스택이 선형 데이터 구조이지만 힙은 비선형 데이터 구조입니다. 스택은 LIFO 속성을 따르는 정렬 된 목록이며 힙은 힙 속성을 따르는 완전한 트리입니다.또한 스택은 푸시 및 팝과 같이 제한된 수의 작업 만 지원하는 제한된 데이터 구조이며 힙은 최소 또는 최대 찾기 및 삭제, 키 증가 또는 감소, 병합과 같은 광범위한 작업을 지원합니다.