שאלה על HEAP

  • פותח הנושא mob2
  • פורסם בתאריך

mob2

New member
שאלה על HEAP

A d-ary heap is like a binary heap, but non-leaf nodes have d children instead of 2 children. (a) [Q] How would you represent a d-ary heap in an array? write the pseudo code for the following procedures: D-ary-Parent(i) - map a node with index i to its parent. אוקי, בתשובות פרוצדורת הפארנט היא: D-ary-Parent(i) return (i − 2)/d + 1 כאשר מה שמחזירים זה הערך השלם של התוצאה ולא סתם ככה. זה יוצא נכון ואני לא מצליח להבין איך הם הגיעו לזה?(למה הם מחסרים מהאינדקס 2 בכלל?) *** ההיפ מיוצג ע"י מערך כך שכל האיברים בני אותה רמה נמצאים במקומות סמוכים במערך. תודה.
 

skies

New member
תחשוב אם היה לך את האינדקס של האב

והיית רוצה לראות מי הבנים שלו במערך מה היית עושה ?
 

mob2

New member
אני חשבתי ולא הבנתי ולכן אני שואל

אני מבין למה מוסיפים 1 לתוצאה וזה בגלל שהראש נמצא באינדקס 1 ורק אחריו מתחילים הצאצאים אבל אני לא מבין מדוע מחסירים 2 מהאינדקס הנוכחי?
 

uvdude

New member
זה לא כזה מסובך

פשוט תצייר לך כמה ערימות D-יות מכמה סוגים ותראה איך זה מסתדר מול המערכים שלהם.
 

mob2

New member
אני רואה :)

אבל עדיין לא מבין למה היה צריך לחסר 2? מאיזה סיבה?
 
למעלה