BST

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

שלח תגובה
chenmey
הודעות: 14
הצטרף: 19:04 26/10/2009

BST

שליחה על ידי chenmey » 19:20 20/01/2010

בפונקציה של() findMin שאנו מגדירים בBST אנחנו מבצעים
;()return ((BSN)root).findMin
והגדרנו גם בBSN את findMin
כאשר אנחנו בונים BST הוא קורא לבנאי של האבא ומגדיר לנו root מסוג BinaryNode
השאלה שלי איך אנחנו יכולים לעשות casting ל root של BST אם אין לroot שלו שדה של comp כפי שאנחנו מגדירים כשבונים BSN.
אני מבין שצריך לעשות את זה בגלל שאנחנו חייבים להגדיר את הפונקציה findMin ב BSN ולא בBinaryNode
אך אני לא מבין כיצד אפשר לאלץ את הroot מסוג BinaryNode להיות BSN . זה לא יגרום לשגיאה?
קבצים מצורפים
bst.JPG
bst.JPG (40.36 KiB) נצפה 1333 פעמים

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

Re: BST

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

אנו עושים casting לאובייקט שאנחנו בטוחים שהוא מסוג BSN (הטיפוס המוצבע),
אך הקומפיילר מכיר אותו כ BinaryNode (טיפוס ה- reference).

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

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

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

chenmey
הודעות: 14
הצטרף: 19:04 26/10/2009

Re: BST

שליחה על ידי chenmey » 11:22 22/01/2010

הבנתי , תודה רבה!

שלח תגובה

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