ここに完全なコードがあります。主に要素を挿入するときにループを30回未満実行すると、ループが実行されます。そうではありません。プログラムがクラッシュし、「オンラインコンパイラで時間制限を超えました」というエラーが表示されます。私は配列のリストに挿入された100のランダムな要素すべての出力を見たいと思っていました。しかし、私にはわからない理由でプログラムがクラッシュする。C++プログラムクラッシュ(制限時間を超過)
はここでメイン
int main()
{
node* a[100],*b,*temp,*temp2;
int num;
for(int i=0;i<100;i++)
{
a[i]=NULL;;
}
for(int i=0;i<100;i++) // If this loop is less than 30 , it runs
{
num=(1+ (rand() %100));
insert_node(a,num);
}
display(a);
}
です。ここ挿入機能は
void insert_node(node **q,int data)
{
node *temp,*temp2;
int pos;
pos=hash_function(data);
if(q[pos]==NULL)
{
temp=new node;
temp->next=NULL;
temp->data=data;
q[pos]=temp;
}
else
{
temp2=q[pos];
while(temp2->next != NULL)
{
temp2=q[pos];
temp2=temp2->next;
}
temp=new node;
temp->next=NULL;
temp->data=data;
temp2->next=temp;
}
}
だし、ここでnoobieハッシュ関数です。
int hash_function(int data)
{
return 1+(rand() %100);
}
ここに表示があります1
void display(node **q)
{
node * temp;
for(int i=0;i<100;i++)
{
temp=q[i];
if(temp !=NULL)
{
cout<<"\n Position : "<<i<<" , Elements : ";
while(temp->next != NULL)
{
cout<<" "<<temp->data;
temp=temp->next;
}
cout<<" "<<temp->data;
}
}
}
PS:ハッシュへの私の試みで判断しないでください。本当にnoobプログラマ。ありがとうございました。
"それは動作します" または "それはしません" 便利なステートメントではありません。あなたは*何が起こると予想されているのか、実際に何が起こったのか –
@BenWainwright、編集されたものを投稿に追加してください。次回から気になります。 –
デバッガを試しましたか? –