数据结构的尾部插入运算
十分感谢阿尔法版主的指点!!!我的问题是我想执行CreateLinkList2,为什么不行?CreateLinkList1可以执行.
#include <stdio.h>
#include <stdlib.h>
#define flag -1
typedef int DataType;
typedef struct Node
{
DataType data;
struct Node *next;
}LNode,*LinkList;
void CreateLinkList1(LinkList L)
{
LNode *s;
DataType x;
printf("请输入一组数据(空格符号作为间隔,输入%d结束):",flag);
scanf("%d",&x);
while(x!=flag)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
}//头部插入结点建立单链表
void CreateLinkList2(LinkList L)
{
LNode *r,*s;
DataType x;
printf("\n请输入一组数据(空格符号作为间隔,输入%d结束):",flag);
scanf("%d",&x);
r=L;
while(x!=flag)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
scanf("%d ",&x);
}
r->next=NULL;
}
void PrintLinkList(LinkList L)
{
LNode *p;
p=L;
while(p->next!=NULL)
{
p=p->next;
printf("%d ",p->data);
}
}//尾部插入
int main()
{
int s;
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
CreateLinkList1(L);PrintLinkList(L);
CreateLinkList2(L);PrintLinkList(L);
}