List MakeEmpty() { List L = (List)malloc(sizeof(struct LNode)); L->Data = 0; L->Next = NULL; return L; }
查询元素
要求
返回线性表中X的位置。若找不到则返回ERROR
具体代码
1 2 3 4 5 6 7 8 9
Position Find( List L, ElementType X ) { while(L->Next) { if(L->Next->Data == X) { return L->Next; } L = L->Next; } return ERROR; }
插入元素
要求
将X插入在位置P指向的结点之前,返回true。如果参数P指向非法位置,则打印“Wrong
Position for Insertion”,返回false
还是那句话,不要移动先判断
具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
boolInsert( List L, ElementType X, Position P ) { List node = (List)malloc(sizeof(struct LNode)); node->Data = X; node->Next = NULL; while(L) { if (L->Next == P) { node->Next = L->Next; L->Next = node; returntrue; } L = L->Next; } printf("Wrong Position for Insertion\n"); returnfalse; }
删除元素
要求
将位置P的元素删除并返回true。若参数P指向非法位置,则打印“Wrong
Position for Deletion”并返回false。
具体代码
1 2 3 4 5 6 7 8 9 10 11
boolDelete( List L, Position P ) { while(L->Next) { if(L->Next == P) { L->Next = L->Next->Next; returntrue; } L = L->Next; } printf("Wrong Position for Deletion\n"); returnfalse; }