2016-03-24 13 views
0

Good Evening!私はランダムな番号&を作成するC++のリンクリストを作成しようとしています.100ノードのランダムを格納します。私が作成したコードには何のエラーもありませんでしたが、プログラムを実行すると、出力はプログラムを終了させるポイントまで "42"の番号をループします。助けてください。コードは以下の通りです。リンクリストにノードを正しく挿入するC++

#include <iostream> 
#include <stdlib.h> 
using namespace std; 

struct Node{ 
    int xdata; 
    Node* next; 
}; 
struct Node *head; 
void insert_node(int y) 
{ 

    Node* temp = new Node; 
    temp-> xdata = y; 
    temp-> next = NULL; 
    if(head==NULL) 
    { 
     head=temp; 
    } 
    else{ 
     temp->next=head; 
     head=temp; 
    } 
}; 
int main(){ 
int z =rand()%100 + 1; 
for(int i=0; i<100; i++) 
{ 
    insert_node(z); 
} 
while(head!=NULL) 
{ 
    cout<<head->xdata<<" "<<endl; 
} 
return 0; 
} 
+0

「head」が「NULL」ではない間に繰り返され、 'head'はいつまでに' NULL'になるでしょうか? 'head'が指しているものを指し示すために初期化された別の変数を使い、リストの次のノードを指すようにループ内でそれを再割り当てします。 –

+0

生命、宇宙、そしてすべてへの答え! –

+0

私は、私が行方不明だったものを正確に見る。 –

答えて

1

ヘッドポインタを前進させる必要があります。

while(head!=NULL) 
{ 
    cout<<head->xdata<<" "<<endl; 
    head = head->next; 
} 
+0

@AaronNettles答えを受け入れてください – OpenUserX03

+0

私はこのようにすることはお勧めしません。ループの後、あなたのヘッドポインタが侵害されたため、印刷後にあなたのリンクリストを見つけることができません。 – HenryLee

関連する問題