סריקה לפי רמות

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

שלח תגובה
adys
הודעות: 8
הצטרף: 20:30 28/10/2009

סריקה לפי רמות

שליחה על ידי adys » 23:38 23/01/2010

בסריקת עץ בינארי לפי רמות באמצעות iterator:

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

public Object next() {
BinaryNode currNode = (BinaryNode) q.dequeue();
Object data = currNode.getData();
if (currNode.getLeft() != null) q.enqueue(currNode.getLeft());
if (currNode.getRight() != null) q.enqueue(currNode.getRight());
return data;
}
לא ברור לי לאן מצביע הcurrNode בכל פעם שאנחנו קוראים לשיטה next()?
ואיך מתבטאת ההתקדמות שלו?
האם כבר באתחול הiterator כל הערכים בעץ נכנסים לתור? (הבנאי מכניס רק את הroot...)

תודה!

בר כהן
הודעות: 146
הצטרף: 18:24 22/10/2009

Re: סריקה לפי רמות

שליחה על ידי בר כהן » 01:37 24/01/2010

הוא יצביע כל פעם על האיבר הבא לפי רמות, כאשר השמאלי ביותר יהיה הראשון, והימני ביותר יהיה האחרון..
ברגע שתוציא את אחד האיברים, ייכנסו לתור שני הבנים שלו, שמאל ואז ימין, וככה כאשר האיבר האחרון לאותה רמה יצא, בתוך התור יהיו לך
כל האיברים של הרמה הבאה.. וכן הלאה..

שלח תגובה

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