#include < stdio.h >
#include < stdlib.h >
#include "myconst.h"
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode * next;
}
LNode,
*LinkList;
void printL(LinkList L) {
LinkList p;
p = L - >next;
while (p) {
printf("%d ", p - >data);
p = p - >next;
}
printf("\n");
}
Status ListInsert_L(LinkList & L, int i, ElemType e) {
LinkList p,
s;
int j;
p = L;
j = 0;
while (p && j < i - 1) {
p = p - >next; ++j;
}
if (!p || j > i - 1) return ERROR;
s = (LinkList) malloc(sizeof(LNode));
s - >data = e;
s - >next = p - >next;
p - >next = s;
return OK;
}
Status ListDelete_L(LinkList & L, int i, ElemType & e) {
LinkList p,
q;
int j;
p = L;
j = 0;
while (p - >next && j < i - 1) {
p = p - >next; ++j;
}
if (! (p - >next) || j > i - 1) return ERROR;
q = p - >next;
p - >next = q - >next;
e = q - >data;
free(q);
return OK;
}
void CreateList_L(LinkList & L, int n) {
LinkList p;
int i;
L = (LinkList) malloc(sizeof(LNode));
L - >next = NULL;
for (i = n; i > 0; --i) {
p = (LinkList) malloc(sizeof(LNode));
printf("L[%d]=", i);
scanf("%d", &p - >data);
p - >next = L - >next;
L - >next = p;
}
}
void main() {
LinkList L;
int n = 5,
e = 100;
CreateList_L(L, n);
printf("xinbiao:\n");
printL(L);
ListInsert_L(L, 3, e);
printf("charu hou:\n");
printL(L);
ListDelete_L(L, 1, e);
printf("shanchu hou:\n");
printL(L);
printf("e=%d\n", e);
}
XXLB
最新推荐文章于 2023-12-04 08:01:07 发布