学习链表时遇到了问题,望各位帮忙解决,谢谢!
#include<stdio.h>#include<stdlib.h>
struct link
{
int data;
struct link *next;
}a;
struct link * creatlink()/*创建链表的函数*/
{
int k;
struct link *head,*tail,*p;
head=tail=NULL;
printf("please input one number:");
scanf("%d",&k);
while(k!=EOF)
{
p=(struct link *)malloc(sizeof(a));
p->data=k;
p->next=NULL;
if(head==NULL) head=tail=p;
else
{
tail->next=p;
tail=p;
}
printf("Enter NUmber:");
scanf("%d",&k);
}
return (head);
}
void output(struct link *head)/*输出链表的函数*/
{ int k=0;
do
{k++;
printf(" Enter %dTH is %d\n",k,head->data);
head=head->next;
}
while(head!=NULL);
}
struct link *insert(struct link *head)/*该函数的功能是在链表的最后插入一个节点*/
{
struct link *p,*mid;
mid=head;
p=(struct link*)malloc(sizeof(a));
printf("please input insert number:");
scanf("%d",&p->data);
while(1)
{
if(mid==NULL)
{
mid=p;
p->next=NULL;
break;
}
mid=mid->next;
}
return(head);
}
main()
{
struct link *head,*head1;
head=creatlink();
output(head);
head1=insert(head);
output(head1);
}
感觉最后那个insert函数没起作用!情帮忙解释一下!
还有就是在创建空链表时,当我输入-1时,系统说内存什么问题,要调试才行!
望各位帮解决,谢谢!