• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:双方向リストについて)

双方向リストを理解する方法と挿入処理の手順

このQ&Aのポイント
  • 双方向リストにはprevとnextのポインタがあり、挿入や削除時にそれらのポインタを適切に操作する必要があります。
  • 削除処理では、削除する要素のprevとnextのポインタをつなぎ換え、その要素を解放します。
  • 挿入処理では、挿入する要素のprevとnextのポインタを両隣の要素とつなぎ換えることで、リストに要素を挿入します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

a→b→c→d と p があったとき、 insert_line(c,p) すると > p->prev = c->prev; cの手前(b)をpの手前とする= pの手前はb > p->next = c; pの次をc とする= pの次はc > c->prev->next = p; cの手前(b)の次をpとする= bの次はp > c->prev = p; cの手前をpとする: cの手前はp という手順で b⇔p⇔c となります。 ----------------------------------- > p->prev->next = p->next; > p->next->prev = p->prev; これは削除の場合。呼んでいません。

その他の回答 (1)

回答No.1

a→b→c→d と p があったとき、 insert_line(c,p) すると a→b→p→c→d となります。

NIPTUCK
質問者

お礼

episteme 様 お忙しい中、お答えいただきありがとうございました。今までわからなかったのですが、よくわかりました。

NIPTUCK
質問者

補足

すいません、確認の意味でお聞きします。 p->prev = c->prev; p->next = c; c->prev->next = p; c->prev = p; p->prev->next = p->next; p->next->prev = p->prev; 上記のそれぞれは、そこの部分を表しているのですか? なんとなく考えているうちにおかしくなってしまうんです。たぶん、そこが把握できてないのだと思います。 ご指導よろしくお願いします。

関連するQ&A