0
点赞
收藏
分享

微信扫一扫

6-5 链式表操作集 (20分)


6-5 链式表操作集 (20分)_结点


注意操作失败时输出信息的输出格式

Position Find( List L, ElementType X ){
while(L){
if (L->Data == X){
return L;
}
L = L->Next;
}
return ERROR;
}
List Insert( List L, ElementType X, Position P ){
List node = (struct LNode *)malloc(sizeof(struct LNode)); //待插入的结点
node->Data = X;
node->Next = NULL;

if (L == P){ //插在头结点前面
node->Next = L;
return node;
}

List p = L; //通过p操作L链表
while(p){
if(P == p->Next){ //若满足条件,此时p指向P的前一个结点
node->Next = p->Next;
p->Next=node;
return L;
}
p = p->Next;
}
//没插入成功
printf("Wrong Position for Insertion\n");
return ERROR;

}
List Delete( List L, Position P ){
if (L == P){
L = L->Next;
return L;
}
List p = L;
while(p){
if (P == p->Next){ //若满足条件,此时p指向P的前一个结点
p->Next = P->Next;
free(P);
return L;
}
p = p->Next;
}
//没删除成功
printf("Wrong Position for Deletion\n");
return ERROR;
}

Position Find( List L, ElementType X ){
while(L){
if (L->Data == X){
return L;
}
L = L->Next;
}
return ERROR;
}
List Insert( List L, ElementType X, Position P ){
List p = L, temp, node;
node = (List)malloc(sizeof(struct LNode));
node->Data = X;
if (L == P){ //插在头结点前面
node->Next = L;
return node;
}
while(p){
if (p->Next == P){
node->Next = p->Next;
p->Next = node;
return L;
}
p = p->Next;
}
printf("Wrong Position for Insertion\n"); //一定注意换行,唯独你没懂。。。
return ERROR;
}
List Delete( List L, Position P ){
if (L == P){ //删除第一个结点
L = L->Next;
return L;
}
List p = L;
while(p){
if (p->Next == P){
p->Next = P->Next;
return L;
}
p = p->Next;
}
printf("Wrong Position for Deletion\n");
return ERROR;
}


举报

相关推荐

0 条评论