דף 1 מתוך 1

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

נשלח: 23:38 23/01/2010
על ידי adys
בסריקת עץ בינארי לפי רמות באמצעות 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...)

תודה!

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

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