#include <stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct LNode{ ElemType date; struct LNode*next; }LNode,*LinkList; LinkList list_head_insert(LinkList &L) { LinkList s; ElemType x; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; scanf("%d",&x); while(x!=9999) { s=(LinkList)malloc(sizeof(LNode)); s->date=x; s->next=L->next; L->next=s; scanf("%d",&x); } return L; } LinkList list_tail_insert(LinkList &L) { LinkList s,r; ElemType x; L=(LinkList)malloc(sizeof(LNode)); r=L; scanf("%d",&x); while(x!=9999) { s=(LinkList)malloc(sizeof(LNode)); s->date=x; r->next=s; r=s; scanf("%d",&x); } r->next=NULL; return L; } void print_list(LinkList L) { L=L->next; while(L!=NULL) { printf("%3d",L->date); L=L->next; } printf("\n"); } LinkList GetElemType(LinkList L,ElemType i) { LinkList p; p=L->next; int j=1; if(i==0) { return L; } if(i<0) { return NULL; } while(p!=NULL&&j<i) { p=p->next; j++; } return p; } LinkList ListDelete(LinkList L,ElemType x) { LinkList p,q; p=GetElemType( L,x-1); if(NULL==p) { return NULL; } q=p->next; p->next=q->next; free(q); return L; } int main() { LinkList L; // bool ret; // list_head_insert(L); list_tail_insert(L); print_list(L); if(NULL) { printf("false"); } else{ ListDelete(L,4); print_list(L); } return 0; }
这里我用了LinkList没用bool