补全以下函数://按值查找(返回数据域值为e的结点,并通过参数传递i,i为元素e在第i位) LNode* LocateElem(LinkList L, int e, int& i) { }
时间: 2023-09-17 17:05:43 浏览: 115
### 回答1:
&i) {
i = 0;
LNode* p = L->next;
while (p != NULL && p->data != e) {
i++;
p = p->next;
}
if (p == NULL) return NULL;
else return p;
}
该函数用于在链表L中按值查找数据域值为e的结点,并通过参数i传递该结点在链表中的位置。如果查找成功,函数返回该结点的指针;如果查找失败,函数返回NULL。
### 回答2:
int &i) {
LNode *p = L->next;
i = 1; // 初始化i为1,指示位置
while (p != NULL) {
if (p->data == e) {
// 找到数据域值为e的结点
return p;
}
p = p->next;
i++; // 递增i,指示位置加一
}
return NULL; // 遍历完链表仍未找到数据域值为e的结点
}
在这个函数中,我们用指针p来遍历链表L,查找数据域值为e的结点。如果找到了结点,则返回该结点的指针p,并通过参数传递i,将元素e在链表中的位置赋值给i。需要注意的是,i的初始值为1,每遍历一个结点就将i加1,这样i就能指示元素e在链表中的位置。如果遍历完链表仍未找到数据域值为e的结点,则返回NULL。
### 回答3:
&i){
int index = 1; // 初始化位置为1
LNode* p = L->next; // 遍历链表
while(p != NULL){ // 遍历链表
if(p->data == e){ // 找到与e相等的结点
i = index; // 通过参数传递i
return p; // 返回该结点
}
p = p->next; // 继续遍历下一个结点
index++; // 更新位置
}
i = -1; // 若未找到与e相等的结点,则修改i为-1
return NULL; // 返回空指针表示未找到
}
阅读全文