求助数据结构的问题
#include<stdio.h>#include<math.h>
#define null 0
typedef int datatype;
typedef struct snode
{ datatype data;
struct snode *next;
}lsnode;
lsinitiate(lsnode **head)
{ (*head)->next=null;
}
lspush(lsnode *head, datatype x)
{ lsnode *p;
if((p=(lsnode *)malloc(sizeof(lsnode)))==null) exit(1);
p->data=x;
p->next=head->next;
head->next=p;
}
lspop(lsnode *head, datatype *d)
{ lsnode *p=head->next;
if(p==null)
{ printf("堆栈已空出错!");
return 0;
}
head->next=p->next;
*d=p->data;
free(p);
return 1;
}
lsgettop(lsnode *head, datatype *d)
{ lsnode *p=head->next;
if(p==null)
{ printf("堆栈已空出错!");
return 0;
}
*d=p->data;
return 1;
}
lsnotempty(lsnode *head)
{ if(head->next==null) return 0;
else return 1;
}
print(lsnode *head)
{ int x;
while(lspop(head,&x))
printf("%3d",x);
}
main()
{ lsnode L;
int i,x;
clrscr();
lsinitiate(&L);
for(i=0;i<=10;i++)
lspush(&L,i);
print(&L);
}
问题出在print 函数里!!