二重リンクされたリストの
p
(データ値14)が指すノードを適切に削除するコードフラグメントを記述します。二重リンクリスト:リストの途中で何かを追加することを適切に削除しますか?(1)左
上のノードに右側の
previous
要素点にノードを作成します。私はこれを行う方法のアイデアを持っていると思います
(2)左側のノードnext
が右側のノードを指すようにする
(3)ノードの要素をp
がNULLを指していて削除しています。
しかし、私はコードでこれを書く方法を忘れていました(これはしばらくありました)。私はそれがこのようなものになるだろう考えていた(次の* Iは、ノードを仮定しているint型のデータを保持している構造体であり、ノード、およびノード*以前):
node* x = p->next;
node* y = p->previous;
x->previous = y;
y->next = x;
p->previous = nullptr;
p->next = nullptr;
delete p;
x->previous = y;
は、挿入するために、コードの断片を書きます14〜16のノード(同じピクチャ):
node *x = p->next;
node y;
y->previous = x->previous;
y->next = p->next;
x->previous = y;
p->next = y;
これは問題ありませんか?
詳細な対応をありがとうございます。あなたの説明は非常に良く分かりやすいです。申し訳ありませんが(私は過去の代わりに 'left'を使用しています)、私は過去2週間のバイナリ検索ツリーを勉強していましたので、そこにうんざりしているはずです:P – StacksAndParsing
ハハ、問題ありません! :)。あなたが理解しやすいことを知って良かったです。 –