דף 1 מתוך 1

BST

נשלח: 19:20 20/01/2010
על ידי chenmey
בפונקציה של() findMin שאנו מגדירים בBST אנחנו מבצעים
;()return ((BSN)root).findMin
והגדרנו גם בBSN את findMin
כאשר אנחנו בונים BST הוא קורא לבנאי של האבא ומגדיר לנו root מסוג BinaryNode
השאלה שלי איך אנחנו יכולים לעשות casting ל root של BST אם אין לroot שלו שדה של comp כפי שאנחנו מגדירים כשבונים BSN.
אני מבין שצריך לעשות את זה בגלל שאנחנו חייבים להגדיר את הפונקציה findMin ב BSN ולא בBinaryNode
אך אני לא מבין כיצד אפשר לאלץ את הroot מסוג BinaryNode להיות BSN . זה לא יגרום לשגיאה?

Re: BST

נשלח: 16:43 21/01/2010
על ידי TA_Adi
אנו עושים casting לאובייקט שאנחנו בטוחים שהוא מסוג BSN (הטיפוס המוצבע),
אך הקומפיילר מכיר אותו כ BinaryNode (טיפוס ה- reference).

בגדול, ניתן לחשוב על זה כך:

קוד: בחירת הכל

BinaryNode root = new BSN(data, comp);
(זה מה ש"נעשה" ב- insert של BST,
ואז כיוון ש- findMin מוגדרת רק ב- BSN ולא ב- BinaryNode, חייבים לעשות casting).

Re: BST

נשלח: 11:22 22/01/2010
על ידי chenmey
הבנתי , תודה רבה!