동적 메모리 할당에 사용 된 힙과 데이터 구조 사이의 연결은 무엇입니까? [복제하다

StackOverflow https://stackoverflow.com/questions/2410683

문제

가능한 복제 :
왜 두 가지 다른 개념이 "힙"이라고 불리는가?

나는 주위에 구글을 봤지만이 질문에 대한 답을 찾을 수는 없습니다. 동적 메모리 할당에 사용 된 힙과 데이터 구조 사이의 연결은 무엇입니까? 힙 데이터 구조와 비슷한 방식으로 메모리가 힙에 구성되어 있습니까? 그렇다면 메모리를 가져 오는 것은 임의의 액세스 AFAIK (즉, O (1))이어야하지만 힙에서 항목을 찾는 것은 일정한 시간에 수행되지 않기 때문에 매우 이상하게 보입니다.

그렇다면 이것은 힙의 과부하 의미 일뿐입니다.

도움이 되었습니까?

해결책

힙은 표준이 프리 스토어라고 부르는 것과 동의어입니다. 함수 호출 및 기능-로컬 객체 저장에 사용되는 스택과 달리, 힙은 많은 구현 (스택과 반대)에서 반대 방향 (위에서 아래로 자라는)에서 반대 방향으로 자랍니다. 물론, 이들 중 어느 것도 표준에 필요하지 않습니다.

반면에 힙 데이터 구조는 완전히 다릅니다. 특정 특성을 가진 특수 트리 구조입니다.

일부 구현은 이름이 도출되었을 수있는 프리 스토어 관리에 힙 데이터 구조를 사용 할 수 있습니다. (보다 친구 메모리 할당.)

다른 팁

아니요, 프로그램 힙은 힙 데이터 구조와 다릅니다. 다시 말해, 관계는 없습니다. 이 질문 프로그램 힙에 대해 자세히 설명합니다.

관계는 없지만 이름이 혼란 스러울 수 있음을 인정합니다. 메모리 힙은 OS가 프로그램에 할당하는 배열입니다. 빠른 조회를위한 프로그램에 의해 힙이 구현됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top