我的程序应该做 3 个操作:
- 插入
- 删除
- 显示在循环链表上。
我的问题在于删除功能。这是代码:
void c_list::del()
{
int num;
if(isempty())
cout<<"List is Empty!"<<endl;
else
{
node *temp1=first;
node *temp2=NULL;
cout<<"Enter the number that u want to DELETE:"<<endl;
cin>>num;
while(temp1->next!=first && temp1->info != num)
{
temp2=temp1;
temp1=temp1->next;
}
if(num != temp1->info )
cout<<"your number was not found in the list"<<endl;
else
{
if(temp2!=NULL)
{
temp2->next=temp1->next;
cout<<temp1->info<<" was deleted"<<endl;
}
else
{
first=temp1->next;
cout<<temp1->info<<"was deleted"<<endl;
}
}
}
system("pause");
}
删除功能以这种方式工作:用户输入一个号码,程序搜索该号码,当它找到该号码时,将其从列表中删除。
现在的问题是,当用户输入列表中不存在的数字时,会出现“应用程序崩溃窗口”(我的意思是这个窗口:程序没有响应),而我已经为这种情况提供了错误消息(“您的号码不在列表中”)!!
你能告诉我问题是什么吗?