我有一個包含許多列表元素的雙鏈表。所以我可以使用item.next,item.prev等...(像item.next.prev.prev.next.prev也將工作) 我想交換兩個項目,所以首先我需要存儲下一個從項目A上一篇:獲取指向持久化對象的指針
Item aprev = a.prev;
Item anext = a.next;
現在我想換b到A:
a.next = b.next;
a.prev = b.prev;
a.next.prev = a;
a.prev.next = a;
現在我需要換a到b,所以我用我以前保存的項目:
b.next = aprev;
b.prev = anext;
...
現在我遇到了問題! aprev是a.prev現在是b.prev!所以項目循環到他自己的...
我能做些什麼,我可以交換這些元素?我需要某種臨時項目,但是如何在覆蓋它時指向對象的指針消失?
大拇指......因爲我真的不是很明亮;-)認真地說,六個先行詞和下一個詞在AT ONCE中完全讓我感到困惑。 – corlettk 2011-04-27 11:07:55
哇謝謝,不得不試試這個..但最新的問題與我的?是因爲我做了兩個臨時變量嗎? – reox 2011-04-27 11:28:50
@reox - 在你的最後一行應該是:'b.prev = aprev; b.next = anext;'。你必須交換next和prev指針 - 不要「交叉交換」。 – 2011-04-27 11:34:17