Создание heaptree с использованием массива ⇐ C++
-
Гость
Создание heaptree с использованием массива
#include использование пространства имен std; класс Энод{ частный: целочисленные данные; Энод* слева; Энод* правый; Энод (интервал d) { данные = д; влево = вправо = NULL; } класс друга Хиптри; }; //МАКСИМАЛЬНАЯ СТРУКТУРА КУЧИ, КОРНЕВОЙ УЗЕЛ МАКСИМАЛЬНЫЙ класс Хиптри{ частный: Энод* корень; публика: Хиптри(){ корень = NULL; } Enode* createHeapTree(int arr[], int idx, int n, Enode* root1){ если(idx>=n){ вернуть НУЛЬ; } root1 = новый Enode(arr[idx]); если((2*idx + 1)left = createHeapTree(arr, 2*idx + 1, n, root1->left); } если((2*idx + 2)right = createHeapTree(arr, 2*idx + 2, n, root1->right); } вернуть корень1; } Энод* getRoot(){ вернуть корень; } void printLevelOrder(){ Энод* температура; очередь Q; Q.push(корень); while(!Q.empty()){ темп = Q.front(); coutleft!=nullptr){ Q.push(temp->влево); } if(temp->right!=nullptr){ Q.push(temp->right); } } } }; void heapify(int arr[], int n){ int т, влево, вправо; for(int i=0; i
#include использование пространства имен std; класс Энод{ частный: целочисленные данные; Энод* слева; Энод* правый; Энод (интервал d) { данные = д; влево = вправо = NULL; } класс друга Хиптри; }; //МАКСИМАЛЬНАЯ СТРУКТУРА КУЧИ, КОРНЕВОЙ УЗЕЛ МАКСИМАЛЬНЫЙ класс Хиптри{ частный: Энод* корень; публика: Хиптри(){ корень = NULL; } Enode* createHeapTree(int arr[], int idx, int n, Enode* root1){ если(idx>=n){ вернуть НУЛЬ; } root1 = новый Enode(arr[idx]); если((2*idx + 1)left = createHeapTree(arr, 2*idx + 1, n, root1->left); } если((2*idx + 2)right = createHeapTree(arr, 2*idx + 2, n, root1->right); } вернуть корень1; } Энод* getRoot(){ вернуть корень; } void printLevelOrder(){ Энод* температура; очередь Q; Q.push(корень); while(!Q.empty()){ темп = Q.front(); coutleft!=nullptr){ Q.push(temp->влево); } if(temp->right!=nullptr){ Q.push(temp->right); } } } }; void heapify(int arr[], int n){ int т, влево, вправо; for(int i=0; i
Мобильная версия