هرم ها

lighting

Member
سلام
می خواستم ببینم برای نوشتن الگوریتم درج در هرم حداقل الگوریتمش مثل هرم حداکثر می شه با این تفاوت که در این الگوریتم ریشه درخت کم ترین مقدار رو داره و در هر مرحله گره درجی با گره پدر مقایسه می شه و اگر کوچک تر بود جای اون رو با گره پدر عوض می کنیم؟
 

the_king

مدیرکل انجمن
سلام
می خواستم ببینم برای نوشتن الگوریتم درج در هرم حداقل الگوریتمش مثل هرم حداکثر می شه با این تفاوت که در این الگوریتم ریشه درخت کم ترین مقدار رو داره و در هر مرحله گره درجی با گره پدر مقایسه می شه و اگر کوچک تر بود جای اون رو با گره پدر عوض می کنیم؟

منظورتون از هرم چیزی شبیه به برج های هانوی ئه که از پایین به بالا قطعه های بزرگ به کوچک روی هم چیده میشه؟
حالا چرا درخت؟ هرم شباهتی با ساختار درختی نداره، هرم شبیه پشته است.
 

lighting

Member
نه منظورم هرم حداکثر و حداقل در مبحث درخت ها است که حالت خاصی از درخت های دودویی کامل هستند
 

lighting

Member
برای این نوع هرم ها توی هرم حداقل باید چه جوری عملیات درج رو در نظر بگیریم من خودم یه چندتا تغییر توی درج در هرم حداکثر دادم ولی فکر نکنم درست باشه؟؟
کد:
void insert (const int &x)
{
if (n == maxsize)
cout<< "heap is full"; return;
int i = n;
if (i==0) break;
if (x >=heap[(i-1)/2]) break;
heap[i] = heap[(i-1)/2];
i = (i-1)/2;
heap [i] = x;
n++;
}
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا