동적 메모리 할당에 사용 된 힙과 데이터 구조 사이의 연결은 무엇입니까? [복제하다
-
18-09-2019 - |
문제
가능한 복제 :
왜 두 가지 다른 개념이 "힙"이라고 불리는가?
나는 주위에 구글을 봤지만이 질문에 대한 답을 찾을 수는 없습니다. 동적 메모리 할당에 사용 된 힙과 데이터 구조 사이의 연결은 무엇입니까? 힙 데이터 구조와 비슷한 방식으로 메모리가 힙에 구성되어 있습니까? 그렇다면 메모리를 가져 오는 것은 임의의 액세스 AFAIK (즉, O (1))이어야하지만 힙에서 항목을 찾는 것은 일정한 시간에 수행되지 않기 때문에 매우 이상하게 보입니다.
그렇다면 이것은 힙의 과부하 의미 일뿐입니다.
해결책
힙은 표준이 프리 스토어라고 부르는 것과 동의어입니다. 함수 호출 및 기능-로컬 객체 저장에 사용되는 스택과 달리, 힙은 많은 구현 (스택과 반대)에서 반대 방향 (위에서 아래로 자라는)에서 반대 방향으로 자랍니다. 물론, 이들 중 어느 것도 표준에 필요하지 않습니다.
반면에 힙 데이터 구조는 완전히 다릅니다. 특정 특성을 가진 특수 트리 구조입니다.
일부 구현은 이름이 도출되었을 수있는 프리 스토어 관리에 힙 데이터 구조를 사용 할 수 있습니다. (보다 친구 메모리 할당.)
다른 팁
아니요, 프로그램 힙은 힙 데이터 구조와 다릅니다. 다시 말해, 관계는 없습니다. 이 질문 프로그램 힙에 대해 자세히 설명합니다.
관계는 없지만 이름이 혼란 스러울 수 있음을 인정합니다. 메모리 힙은 OS가 프로그램에 할당하는 배열입니다. 빠른 조회를위한 프로그램에 의해 힙이 구현됩니다.
제휴하지 않습니다 StackOverflow