#include"stdio.h"
#define OK 1
#define FALSE -1
#define OVERFLOW -1
typedef int ElemType;
typedef int Status;
typedef struct{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status InitList(LinkList *L){
*L=(LinkList)malloc(sizeof(LNode));//L为指向结构体指针L的值
(*L)->data=NULL;
(*L)->next=NULL;
return OK;
}
Status InsertList(LinkList L,ElemType e){
LinkList p;
LinkList s;
if(!L)return FALSE;
p=L;
if(p->data==NULL){
p->data=e;
return OK;
}
while(p->next!=NULL)
p=p->next;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;
s->next=NULL;
p->next=s;
return OK;
}
Status PrintList(LinkList L){
LinkList p;
p=L;
if(L){
printf("x=%d/n",p->data);
PrintList(p->next);
}
return OK;
}
Status DelList(LinkList L,int i,ElemType *e){
LinkList p,s;
int j=0;
p=L;
while(p->next && j
p=p->next;
++j;
}
if(!(p->next) || j>i-2)return FALSE;
s=p->next;
p->next=s->next;
*e=s->data;
free(s);
}
void main(){
int e;
LinkList H;//H只是指针存储的指向的地址,不是*H
InitList(&H);
InsertList(H,1);
InsertList(H,2);
InsertList(H,3);
InsertList(H,4);
InsertList(H,5);
InsertList(H,6);
InsertList(H,7);
InsertList(H,8);
InsertList(H,9);
InsertList(H,0);
DelList(H,5,&e);
PrintList(H);
printf("%d/n",e);
}