שאלה חשובה בקשר לקומפרטור בעצים

מנהלים: TA_nimrod, TA_Igor, TA_Adi

שלח תגובה
liatza
הודעות: 6
הצטרף: 15:44 14/11/2009

שאלה חשובה בקשר לקומפרטור בעצים

שליחה על ידי liatza » 11:17 21/01/2010

היי,

נדמה לי שיש טעות במצגת שהועברה בשיעור 24.

אשמח אם תוכלו להגיד לי אם הטעות אצלי או במצגת.

1. במחלקה BST בINSERT כאשר הROOT אינו NULL ואנו שולחים את הוספת הערך ל-root.insert אז קוראים ל-INSERT של BSN
מאיפה הBSN יודע מה הCOMP?
הרי לא שלחנו אותו בINSERT.

2. במיון הכנסה ע"י קומפרטור אין שמירה של הערך שנדרס כלומר נאבד ערך.


וחוץ מזה רציתי לשאול :
הוצגו שני מימושים של LIST בכיתה אחד עם SENTIAL ואחד עם FIRST, במה משתמשים יותר?

קוד מיון קומפרטור :
public static void insertionSort(Object [] arr,Comparator comp){
for(int i=1; i < arr.length; i = i + 1){
int j=i;
while(j>0 && (comp.compare(arr, arr[j-1])<0){
arr[j] = arr[j-1];
j=j -1;
}
} }

תודה,
ליאת.

TA_Adi
הודעות: 106
הצטרף: 16:53 05/11/2008

Re: שאלה חשובה בקשר לקומפרטור בעצים

שליחה על ידי TA_Adi » 17:43 21/01/2010

1. ה- comp נקבע בזמן יצירת האובייקט (ניתן לראות זאת בבנאי של BSN).

2. השאלה לא כל כך מובנת. אנו ממשיכים להעביר את האובייקט שאנו רוצים להכניס (toAdd), ולכן לא מאבדים ערך.

לפעמים משתמשים ב- sentinal ולפעמים לא, תלוי בדרישה בתרגיל.
(יש מקרים בהם קל יותר להשתמש ב- sentinal, לדוגמא כאשר הרשימה המקושרת מוגדרת בצורה רקורסיבית ורוצים להוסיף איבר להתחלה,
ויש מקרים בהם משתמשים ב- first כי בד"כ זה קל יותר למימוש).
צוות מבוא למדעי המחשב (מתרגל)

שלח תגובה

חזור אל “- מבוא למדעי המחשב 2010”