עבור לתוכן

++C מימוש קוד הופמן

Featured Replies

פורסם

מנסה לממש קוד הופמן.

בניתי STRUCT TAV


struct tav
{
char val;
int incidence;
tav* right;
tav* left;


tav();
bool operator<(tav &t) const;
bool operator>(tav &t) const;

};

אחרי שאני בונה את העץ, איך אני מקודדת אותו???

זו בניית העץ שעשיתי:



tav x, y, ezer;

while(check()==false)
{
x = heap.RemoveTop();
y = heap.RemoveTop();

ezer.incidence = x.incidence + y.incidence;

ezer.right = new tav(x);
ezer.left = new tav(y);

heap.Insert(ezer);

}

x = heap.RemoveTop();
y = heap.RemoveTop();

ezer.incidence = x.incidence + y.incidence;

ezer.right = new tav(x);
ezer.left = new tav(y);

root = ezer;

(פונקציה CHECK מחזירה FALSE אם נשארו במערך התוים יותר משני תוים)

פורסם
  • מחבר

אולי בכל זאת???

אם אני מוסיפה בSTRUCT לכל משתנה שדה כך שאם הוא בן ימני לאביו הוא יקבל ערך 1 , ואם הוא בן שמאלי הוא יקבל ערך 0.

לאחר בניית העץ אני צריכה לעבור עליו מהשורש ולשרשר את המסלול דרכו אני עוברת עד לעלה <הרי כל התוים הם עלים> איך אני עושה את זה?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים