נשלח בתאריך: 02 January 2011 בשעה 19:34 | | IP רשוּם
|
|
|
|
תודה על העזרה,ניסיתי ליישם את מה שכתבת אבל היו כמה דברים שלא הסתדרו לי: בשני הלולאות הפנימיות של הלולאה הראשונה,יש לעבור על כל החוליות ולכן יש לקדם גם את שני השרשראות בלולאות לא? קטע הקוד הזה לא עובד,מה צריך לשנות בו?
תודה.
public static Node<Integer> merge(Node<Integer> chain1,Node<Integer> chain2) { Node<Integer> chain3=new Node<Integer>(-100); Node<Integer> pos=chain3; while(chain1!=null&&chain2!=null) { while(chain1!=null&&chain1.getInfo()<chain2.getInfo()) { pos.setNext(new Node<Integer>(chain1.getInfo())); pos=pos.getNext(); chain1=chain1.getNext(); } while(chain2!=null&&chain2.getInfo()<chain1.getInfo()) { pos.setNext(new Node<Integer>(chain2.getInfo())); pos=pos.getNext(); chain2=chain2.getNext(); } } while(chain1!=null) { pos.setNext(new Node<Integer>(chain1.getInfo())); pos=pos.getNext(); chain1=chain1.getNext(); } while(chain2!=null) { pos.setNext(new Node<Integer>(chain1.getInfo())); pos=pos.getNext(); chain2=chain2.getNext(); } return chain3.getNext(); }
|