السلام عليكم
انا عضوة جديده عندكم
انا كتبت معظم الكود بس في شغلتين مو heap وعندي سؤال عن
زابطين معي موجودين بالكود بس دون ما اكبلهم الكود
checkheap
heapify
لكن انا بعرف انه في heapify
لازم اتاكد من اليمين واليسار (الابناء) واقارنها مع الاب اذا كان هو الاكبر من بينهم
او لا لأني هون انا بشتغل على max
وكمان لازم اتأكد من heap-size
وبعدين اعمل تبديل
لكن مش عارفه ازبطهم بكود
وهاد الكود الي انا عملته
#include <time.h>
#include <iostream>
#include <stdio.h>
void printA(int A[], int n);
void checkHeap(int A[], int n);
void Heapify(int A[], int n, int i);
void BuildHeap(int A[], int n);
void HeapSort(int A[], int n);
int HeapSize=0;
using namespace std;
int main()
{
int n=10; // input size
//create and intialize A with size n
int *A;
srand ( time(NULL) );
A=new int[n];
for(int i=0; i<n; i++) {A=(rand() /100);}
printA(A,n);
checkHeap(A,n);
HeapSort(A,n);
printA(A,n);
}
void printA(int A[], int n){
cout << endl << "A=[";
for(int i=0; i<n; i++) cout << A << ", ";
cout << " ]" << endl<< endl;
}
void checkHeap(int A[], int n){
// your code here
}
void Heapify(int A[], int n, int i){
// your code here
// note: index starts from 0 and thus left(i) and right(i)
// should be modified
}
void BuildHeap(int A[], int n){
HeapSize=n;
for(int i=n/2-1; i>=0; i--)
Heapify(A,n,i);
}
void HeapSort(int A[], int n){
BuildHeap(A,n);
for(int i=n-1;i>=1; i--){
int temp=A; A=A[0]; A[0]=temp;
HeapSize--;
Heapify(A,n,0);
}
}
يا ريتكم تساعدوني اليوم :wub: