所以,我正在尝试创建一个函数,它将一个链表和一个整数x作为参数,并在列表中搜索该x,当它找到它时,使包含它的节点成为列表的头部并返回找到x的地方,这是我到目前为止所创造的,但它给出的结果是错误的
int searchMF(list &l,int x){
node *curr,*temp;
curr=l.front;
temp=curr;
int i,place=0;
if (l.front->info == x ) return 1;
else{
FOR (i,1 TO size(l)) {
if (curr->info == x) {
temp->next=curr->next;
curr->next=l.front;
place=i;
break;
}
temp=curr;
curr=curr->next;
}
return place;
}
}
任何建议都将受到赞赏
答案 0 :(得分:1)
在curr->next=l.front;
之后,您需要更新l.front
以指向curr
。
curr->next=l.front;
l.front = curr;
此外,纯C
代码在调试问题时会更有帮助。