שאלה ב- c - עצים בינאריים

Bergi1984

New member
שאלה ב- c - עצים בינאריים

נתון לי עץ בינרי עם נתונים בכל הצמתים. אני צריך לכתוב פונקציה (int* TreeToLDRArray(TNODE* root,int resSize הפונקציה צריכה לייצר מערך שמכיל את הנתונים של העץ לפי סדר( in-order (LDR ולעדכן את resSize להיות הגודל של המערך. אנא עיזרו!! תודה.
 

טום הוק

New member
מה זה אומר בדיוק שמערך הוא

מסודר LDR, חוץ מזה resSize מועבר by value אז קצת קשה לעדכן אותו
 

Bergi1984

New member
c

סליחה ה- resSize הוא int* וה-LDR זה Left-Data-Right סידור בצורת in-order
 

עדין ר

New member
נראה לי

שהכי פשוט לפתור את זה ברקורסיה. כלומר: אם קיים תת עץ שמאלי, קרא לפונקציה ברקורסיה על תת העץ השמאלי. אם קיים תת עץ ימני, קרא לפונקציה ברקורסיה על תת העץ הימני. כעת אתה יכול להקצות מערך בגודל מתאים (גודל המערך מהקריאה הראשונה ועוד גודל המערך מהקריאה השניה ועוד 1), להעתיק את המערך מהקריאה הראשונה, להוסיף את תוכן השורש למערך ולהעתיק את המערך מהקריאה השניה, ולשחרר את שני המערכים.
 
למעלה