-4

だから私は問題を解決しており、ダミーノードを使用することはできません

したがって、コードは次のように始まります

void LinkedList::deletemiddleNode()
{
    Node *pointer = head;
    ...
}

私が混乱している理由は、概念的に混乱しているからです。ダミー ノードがないため、ヘッダー ノードの prev は に設定されNULL、テール ノードの next は に設定されNULLます。では、そのポインターが指し示すものを図面でどのように説明しますか。頭を指すポインタですか?次に、 head の prev が であるため、pointer->prev->next は使用できませんがNULL、ソリューション例ではそれを使用しています...?

4

2 に答える 2

4

あなたが言った図面?このようなものはどうですか:

メモリ内のどこかにあるオブジェクトheadを指す変数があるとしましょう。node次のようになります。

+-----+ +------------------+
| | 頭 | ---> | いくつかのノード オブジェクト |
+-----+ +------------------+

次に、別のポインターを宣言し、名前を付けてからのpointerを割り当てます。と同じ値が含まれるようになり、メモリ内の同じノードを指します。headpointerhead

   +--------+      
   | | 頭 | ---。
   +--------+ | +------------------+
               >---> | いくつかのノード オブジェクト |
+---------+ | +------------------+
| | ポインター | ---'
+---------+

それとも私はあなたの質問を誤解していますか?

于 2013-04-25T07:58:35.783 に答える
0

上記のステートメントは、ヘッド ポインターを設定または初期化してノード オブジェクトを指すようにし、ヘッドがノードと同じユーザー定義データ型であることを意味します。

于 2013-04-25T08:05:44.250 に答える