ソートの選択を実装しています。要素を交換する必要があります。 私は前と次のリンクとリストを二重にリンクしました。 そして、私はいつもtoStartFrom
スワップ要素二重リンクリスト
public void Swap(Node toStartFrom, Node b) {
Boolean NextToEachOther = (toStartFrom.next == b);
toStartFrom.next = b.next;
b.previous = toStartFrom.previous;
if (NextToEachOther) {
toStartFrom.previous = b;
b.next = toStartFrom;
} else {
toStartFrom.previous = b.previous;
b.next = toStartFrom.next;
}
}
public void display() {
Node current = first;
while (current != null) {
...printing...
current = current.next;
}
}
最初のノードで、いくつかのノードb
を交換する必要がある。しかし、それは動作しません一覧 の最初と最後の要素へのリンク。 エラーはありません。正しい順序で並べ替えられません。 toStartFrom
ノードの後にソート後に要素を表示しません。あなたはまた、2は、例えば
をスワップしているの隣にあるノードを更新する必要が
単純なデータセットのデバッガでコードをステップ実行したとき、あなたは何を観察しましたか? –
また、要素の1つが頭部であることが保証されている二重リンクリストの場合、6つの参照を更新する必要があります。理由を見るために絵を描く。 –
デバッグでは、デバッグ時にスワップされている可能性があります。表示に問題があるかもしれません。 – Nikita