一个链表问题,

zyp12345 2005-03-17 05:34:52
为什么执行后是个死循环啊!!!!!!!!


#include "stdafx.h"


#include "stdlib.h "
#include "stdio.h "
struct llist
{
int num;
struct llist *next;
};
typedef struct llist node;
typedef node *llink;
void printllist(llink ptr)
{
while(ptr!=NULL)
{
printf( "[%d] ",ptr->num);
ptr=ptr->next;
}
printf( "\n ");
}
llink createllist(int *array,int len)
{
llink head;
llink ptr,ptr1;
int i;
head=(llink)malloc(sizeof(node));
if(!head)
return NULL;
head->num=array[0];
head->next=NULL;
ptr=head;
for(i=1;i <len;i++)
{
ptr1=(llink)malloc(sizeof(node));
if(!ptr1)
return NULL;
ptr1->num=array[i];
ptr1->next=NULL;
ptr->next=ptr1;
ptr=ptr->next;
}

return head;
}
llink findnode(llink head,int num)
{
llink ptr;
ptr=head;
while (ptr!=NULL)
{
if(ptr->num==num)
return ptr;
ptr=ptr->next;
}
return ptr;
}
llink deletenode(llink head,llink ptr)
{
llink previous;
if(ptr==head)
return head->next;
else
{
previous=head;
while(previous->next!=ptr)
previous=previous->next;
if(ptr->next==NULL)
previous->next=NULL;
else
previous->next=ptr->next;
}
return head;
}

void main()
{
int llist[6]={1,2,3,4,5,6};
llink head;
llink ptr;
int num;
head=createllist(llist,6);
if(!head)
{
printf( "失败!\n");
exit(1);
}
printf( "原来的链表");
printllist(head);
while(1)
{
printf( "要删除的数");
scanf( "%d ",&num);
if(num!=-1)
{
ptr=findnode(head,num);
if(!ptr)
printf( "没有找到的数");
else
{
head=deletenode(head,ptr);
printf( "新链表");
printllist(head);
}
}
else
exit(1);
}
}
...全文
62 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
arrowcy 2005-03-17
  • 打赏
  • 举报
回复
我是直接把你的那个程序复制到vc下面,然后把stdafx.h那个去掉,然后把scanf里面多余的空格去掉就正常运行了,也就是输入一个数字,就删除对应的链表中的元素,输入-1就退出了,你要的就是这个结果吧
其实调试的时候但不执行一下就很容易检查出这个问题的
arrowcy 2005-03-17
  • 打赏
  • 举报
回复
把scanf的参数里面的多余的空格去掉就行了,因为有那些空格存在,如果你不输入相同的空格的话,scanf函数就始终没有返回,所以就不能进行下一步了
arrowcy 2005-03-17
  • 打赏
  • 举报
回复
你的scanf有点问题
wangjichen 2005-03-17
  • 打赏
  • 举报
回复
there is no comments.
wantna other to view and read your programm.
or wantna other to pick your mistake.

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧