#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next; }LNode, *LinkList; int DestroyList_L(LinkList L) { return 0; } LinkList CreateList_L(void) { int i = 0; int input = 0; LinkList head = NULL; LinkList p = NULL; LinkList q = NULL; head = (LinkList)malloc(sizeof(LNode)); if (head == NULL) { return NULL; } head->next = NULL; p = head; scanf("%d", &input); while(input != -999) { q = (LinkList)malloc(sizeof(LNode)); if (q == NULL) { DestroyList_L(head); return NULL; } q->data = input; q->next = NULL; p->next = q; p = q; scanf("%d", &input); } return head; } int ListInsert_L(LinkList L, int i, ElemType e) { int j = 0; LinkList p = L; LinkList q = NULL; if (L == NULL) { return -1; } while ((p != NULL) && (j < i - 1)) { p = p->next; j++; } if ((p == NULL) || (j > i - 1)) { return -1; } q = (LinkList)malloc(sizeof(LNode)); if (q == NULL) { return -1; } q->data = e; q->next = p->next; p->next = q; return 0; } int ListDelete_L(LinkList L, int i, ElemType *e) { int j = 0; LinkList p = L; LinkList q = NULL; if (L == NULL) { return -1; } while ((p != NULL) && (j < i - 1)) { p = p->next; j++; } if ((p == NULL) || (j > i - 1)) { return -1; } q = p->next; p->next = q->next; free(q); return 0; } int main(void) { LinkList L = NULL; ElemType e; L = CreateList_L(); ListInsert_L(L, 1, 88); ListDelete_L(L, 1, &e); return 0; }