Giúp mình với. làm sao để chạy đây
#include<iostream>
using namespace std;
struct HEAP{
int *item;
int Lenght;
int Size;
};
//Khởi tạo
void Init(HEAP &A, int n)
{
A.Lenght= 0;
A.Size= n;
A.item= new int [n];
}
int Parent(int i)
{
return i/2;
}
int Left(int i)
{
return 2*i;
}
int Right(int i)
{
return 2*i+ 1;
}
void MaxHeapify(HEAP &A, int i)
{
int r, l, Largest;
r= Right(i);
l= Left(i);
if(l <= A.Size && A.item[l] > A.item[i])
{
Largest= l;
}
else
{
Largest= i;
}
if(r <= A.Size && A.item[Largest] < A.item[r])
{
Largest= r ;
}
if(i != Largest)
{
swap(A.item[Largest], A.item[i]);
MaxHeapify(A, Largest);
}
}
void Build_MaxHeapify(HEAP &A)
{
A.Lenght= A.Size;
for(int i=A.Lenght / 2; i >= 0; i--)
{
MaxHeapify(A, i);
}
}
void HeapSort(HEAP &A)
{
Build_MaxHeapify(A);
for(int i= A.Lenght; i >= 1; i--)
{
swap(A.item[1],A.item[i]);
A.Size--;
MaxHeapify(A, 0);
}
}
void Print(const HEAP &A)//In cac phan tu trong hang
{
for(int i= 0; i< A.Lenght; i++)
{
cout<< A.item[i]<<" ";
}
}
void Push(HEAP &A, int k)
{
A.Lenght++;
int i= A.Lenght;
A.item[i]= k;
}
int main()
{
HEAP A;
Init(A, 10);
Push(A, 5);
Push(A, 13);
Push(A, 2);
Push(A, 25);
Push(A, 7);
Push(A, 17);
Push(A, 20);
Push(A, 8);
Push(A, 4);
Push(A, 10);
HeapSort(A);
Print(A);
system("pause");
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?