24-06-2011, 11:42
|
|
|
חבר מתאריך: 17.01.11
הודעות: 18
|
|
בדיוק, מדובר על 2 רשימות מעגליות.
השתמשתי ב_last כי חייבו אותי להשתמש במצביע אחד בלבד לרשימה והיא צריכה להיות בFIFO ועדיין שאפשר יהיה לעשות פעולות הספה והורדה בO)1(
הTEMP הוא בשביל לשמור את אובייקט הראש כדי שהוא לא יילך לאיבוד כשאני עושה את ההחלפה. (הקומפיילר זורק אותו אם אף אחד לא מצביע עליו)
כרגע שיניתי את התוכנית כך:
קוד:
public void unify(CircularLinked other)
{
//if both empty nothing done. if the other is empty, nothing is done.
if(_last == null && other._last != null)
{
_last=other._last;
}
else if(_last != null && other._last != null)
{
IntNode temp = _last.getNext();
_last.setNext(other._last.getNext());
other._last.setNext(temp);
_last=other._last;
}
}
לפי הבדיקות שלי עד עכשיו זה עובד. (למעשה זה לא עבד בעיקר כי היו בעיות בשיטות אחרות)
תודה רבה לעונים
|