那位高人给我看看!谢谢

zyp12345 2005-03-17 04:50:07
我编的一个链表删出其中的一个数
#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=Nnll;
ptr=head;
for(i=1;i<len;i++)
{
prt1=(llink)malloc(sizeof(node));
if(!ptr1)
return Null;
ptr1->num=array[i];
ptr1->next=Null;
ptr->next=ptr1;
ptr=ptr->next;
}
return head;
llink findenode(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(“原来的链表”)
printfllist(head);
while(1)
{
printf(“要删除的数”);
scanf("%d",&unm);
if(unm!=-1)
{
ptr=findnode(head,num);
if(!ptr)
printf(“没有找到”);
else
{
head=deletenode(head,ptr);
printf(“新链连表”)
printllist(head);
}
}
else
exit(1);
}
}


...全文
25 点赞 收藏 1
写回复
1 条回复
kobefly 2005年03月17日
多数为拼写错误
还有少了分号

再有就是引号的错误,应该用英文的,用了中文下的引号

#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);
}
}






















回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告