提交
List MakeEmpty() {
List head = (List)malloc(sizeof(struct LNode));
head->Next = NULL;
return head;
}
Position Find( List L, ElementType X ) {
if ( L!=NULL ) {
List p = L->Next;
for ( ; p; p=p->Next) {
if ( p->Data == X)
return p;
}
}
return ERROR;
}
bool Insert( List L, ElementType X, Position P ) {
List temp;
List head = L;
List beforeP;
L = L->Next;
if ( L==NULL ) {
temp = (List)malloc(sizeof(struct LNode));
temp->Data = X;
temp->Next = NULL;
head->Next = temp;
L = head;
return true;
}
if ( P==NULL ) {
//P in the tail
beforeP = L;
while (beforeP != NULL) {
if (beforeP->Next == NULL) {
break;
}
beforeP = beforeP->Next;
}
temp = (List)malloc(sizeof(struct LNode));
temp->Data = X;
temp->Next = NULL;
beforeP->Next = temp;
L = head;
return true;
}
if ( P==L ) {
//P in the head
temp = (List)malloc(sizeof(struct LNode));
temp->Data = X;
temp->Next = L;
head->Next = temp;
temp->Next = L;
L = head;
return true;
}
beforeP =