Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 이항 힙의 메모리 표현

<시간/>

이항 트리란 무엇입니까?

이항 트리는 정렬된 트리 데이터 구조입니다. 예를 들어 B0은 단일 노드로 구성되는 반면 Bk로 표시되는 이항 트리는 함께 연결된 두 개의 이항 트리, 즉 Bk-1로 구성됩니다. 한 이항 트리의 루트는 다른 이항 트리 루트의 가장 왼쪽 자식입니다. 이항 트리는 주로 자산이나 주식의 펀더멘털 및 기술적 분석에 사용됩니다.

이항 트리의 노드는 자산의 고유 가치를 나타냅니다. 투자자 또는 시장 구매자가 투자에 적합한 시기와 가치를 분석하는 데 도움이 됩니다.

이항 힙이란 무엇입니까?

이항 힙은 여러 이항 트리의 조합으로 구성된 데이터 구조입니다.

바이너리 힙 H의 속성은 다음과 같습니다.

  • H의 각 이항 트리는 힙 정렬됩니다. 따라서 노드의 키는 상위 노드의 키보다 크거나 같습니다.

  • H에는 루트가 주어진 차수를 갖는 최대 하나의 이항 트리가 있습니다.

바이너리 힙의 예는 다음과 같습니다.

C++에서 이항 힙의 메모리 표현

이항 힙 노드의 메모리 표현

바이너리 힙의 각 노드는 5개의 필드, 즉

가 있는 메모리의 표현입니다.
  • 상위 포인터 -:바이너리 힙 구조로 다른 노드와 연결될 수 있도록 부모 노드의 주소를 저장합니다.

  • 키-: 노드가 보유하고 있는 데이터 또는 키를 저장합니다.

  • 정도-: 바이너리 힙 노드의 정도 또는 레벨을 지정합니다.

  • 왼쪽 자식 포인터-: 해당되는 경우 왼쪽 노드와 연결하기 위해 바로 왼쪽 자식의 주소를 저장합니다.

  • 형제 포인터-: 직계 형제의 주소를 저장합니다.

C++에서 이항 힙의 메모리 표현

예:

1. 단일 노드 메모리 표현

C++에서 이항 힙의 메모리 표현

2. 상위 및 하위 노드 메모리 표현

C++에서 이항 힙의 메모리 표현

3. 형제 노드 메모리 표현

C++에서 이항 힙의 메모리 표현