דף 1 מתוך 1

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

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

נדמה לי שיש טעות במצגת שהועברה בשיעור 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;
}
} }

תודה,
ליאת.

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

נשלח: 17:43 21/01/2010
על ידי TA_Adi
1. ה- comp נקבע בזמן יצירת האובייקט (ניתן לראות זאת בבנאי של BSN).

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

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