求高手解决下面程序运行出错,
#include<stdio.h>#include<malloc.h>
#define ERROR 0
#define OK 1
typedef int DataType;
typedef struct node
{
DataType data;
struct node *next;
}LinkList;
LinkList *init()
{
LinkList *head;
head=(LinkList *)malloc(sizeof(LinkList));
head->next=NULL;
return(head);
}
LinkList *Create_LinkList()
{
LinkList *head,*t,*last;
DataType e;
t=(LinkList*)malloc(sizeof(LinkList));
head=last=t;
t->next=NULL;
scanf("%d",&e);
while(e=getchar()!='$')
{
t=(LinkList*)malloc(sizeof(LinkList));
t->data=e;
last->next=t;
last=t;
t->next=NULL;
}
return head;
}
LinkList *Get_LinkList(LinkList *head, int i)
{
LinkList *p;
int j;
p=head;
j=0;
while(p->next!=NULL && j<i)
{
p=p->next;
j++;
}
if(j==i)
return p;
else
return NULL;
}
int ListInsert(LinkList *head,int i,DataType e)
{
LinkList *p,*s;
p=Get_LinkList(head,i-1);
if(p==NULL)
return ERROR;
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
LinkList *Locate_LinkList(LinkList *head,DataType e)
{
LinkList *p;
p=head;
p=p->next;
while(p!=NULL)
{
if(p->data==e)
return p;
else
p=p->next;
}
return NULL;
}
int ListLength(LinkList *L)
{
LinkList *p;
int j=0;
p=L;
while(p->next)
{
p=p->next;
j++;
}
return j;
}
void printllist(LinkList *L)
{
LinkList *p;
p=L;
printf("链表内容如下:");
while (p->next)
{
p=p->next;
printf("\n");
}
}
main()
{
int e;
LinkList * aList = init();
scanf("%d",&e);
while(e=getchar()!='$')
{
ListInsert( aList,1,e);
}
printllist(aList);
return 0;
}