2 qq 32481541 qq_32481541 于 2016.03.27 20:21 提问

我想问一下这个应该怎么改?

#include
#include

struct node
{
int data;
struct node *next;
};
typedef struct node NODE;
NODE *ApplyNODE(int x)
{
NODE *p;
p=(NODE *) malloc (sizeof(NODE));
p->data=x;
p->next=NULL;
return(p);
}
NODE *InitList()
{
NODE *head;
head=(NODE *) malloc (sizeof(NODE));
head->next=NULL;
return(head);
}
NODE *creat(int n)//创建链表

{

NODE *head,*p,*q;

int i,m,x;
printf("\nInput the length of the line:");
scanf("%d",&m);
head=q=InitList();
printf("\nInput %d datas:",m);
head=p=q=(NODE *)malloc(sizeof(NODE));//创建节点

for(i=0;i {
if(q->next!=NULL)

{

scanf("%d",&x);
p=ApplyNODE(x);
q->next=p;//q->next保存p,q指向最后一个节点

q=p;

p=(NODE *)malloc(sizeof(NODE));//创建下一个节点

}

}

q->next=NULL;

return head;

}

NODE *search(NODE *head,int x)//查找数据

{
NODE *p=head;

p=head->next;
while((p!=NULL)&&(p->data!=x))
p=p->next;
return(p);

}
NODE *delete(NODE *head, int x)//删除节点

{
NODE *q;
q=head;
while(q->next->data!=x)
q=q->next;
q->next=q->next->next;

return(head);

}
void Display(NODE *head)
{
NODE *p;
printf("\nThe line are:");
p=head->next;
while(p!=head)
{
printf("%d",p->data);
p=p->next;
}
}
main()
{
int n,x;
NODE *head;
head=creat(n);
head=delete(head,x);
Display(head);
search(head,x);

}

4个回答

caozhy
caozhy   Ds   Rxr 2016.03.27 20:51
已采纳

delete是关键字不能作为函数名

Follow__Heart
Follow__Heart   2016.03.27 21:04

缺少头文件,主函数中的n没有初始化,
include
include

Follow__Heart
Follow__Heart   2016.03.27 21:05

缺少头文件,主函数中的n没有初始化,
include
include

sam1437
sam1437   2016.03.27 21:31

malloc 之后做判断空间分配成功与否之后再决定是否赋值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!