#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct LNode{//指向结构体成员 必然是结构体指针
int data;
struct LNode *next;
}LNode,*LinkList;
void InitList(LinkList &L){//构造空线性表L
L = (LinkList)malloc(sizeof(struct LNode));//产生头结点 L
if(!L)//存储分配失败
exit(0);
L -> next = NULL; //头结点指针域为空
}
void CreateList(LinkList &L){
int i;
LinkList pnew,pa;
pa = L;
printf("please enter a number or q exit:");
while(scanf("%d",&i)){
pnew = (LinkList)malloc(sizeof(LNode)) ;
pnew -> data =i;
pnew->next = NULL;
pa ->next = pnew;
pa = pnew;
printf("please enter a number or q exit:");
}
}
void output(LinkList L){
L = L->next;
while(L){
printf("%d
",L->data);
L = L->next;
}
}
void DestroyList(LinkList &L){
LinkList q;
while(L){
q = L -> next;
free(L);
L = q;
}
}
int main(){
LinkList L;
InitList(L);
CreateList(L);
output(L);
DestroyList(L);
return 0;
}