-1

基本的な連結リスト プログラムでは、これを通常実装します。

struct node {
    int info;
    struct node * next;
};

int main() {
    struct node * head = malloc(sizeof(node)*3); //for 3 nodes
    head->info = 1;
    head->next->info = 2;
    head->next->next->info = 3;
    //more code
}

ここで、2 番目のノードの内容を出力するために、次のステートメントを使用します。

cout<<head->next->info;

私の質問は、上記のステートメントを使用する代わりに、次のステートメントを使用できるかどうかです。

cout<<head[1]->info;
4

3 に答える 3

2

私の質問は、上記のステートメントを使用する代わりに、次のステートメントを使用できるかどうかです。

cout<<head[1]->info;

あなたの場合、実際には、あなたのコードはリンクされたリストを作成するのではなく、配列のようなものを作成するためです。各要素が次の要素へのポインタを持つように見える配列ですnextが、これらのポインタはすべて初期化されていません。

std::listリンクされたリストがどのように機能するかを理解するまで使用してください...そしてとにかくそれを使い続けてください!

于 2013-10-20T13:03:41.573 に答える
1

リンクされたリストは、メモリ内で連続していない要素を持つことを意図しています。フォーマット head[1] には連続した要素が必要です。

とにかく、あなたの例のコードはリンクされたリストを表していません

于 2013-10-20T13:00:38.807 に答える