在顺序线性表中查找第一个与e满足compare()的元素的位序
时间: 2024-02-16 21:03:03 浏览: 79
顺序表查找的实现
好的,针对您的问题,我可以给出以下算法:
1. 初始化计数器i为1,表示从顺序线性表的第一个元素开始查找。
2. 若i大于表长,则查找失败,返回0。
3. 否则,取第i个元素与e进行比较,若compare(e, a[i])为真,则查找成功,返回i。
4. 否则,i加1,重复步骤3。
以下是该算法的C++代码实现:
```c++
int search(SeqList L, ElemType e, int (*compare)(ElemType, ElemType)) {
int i = 1;
while (i <= L.length && !compare(e, L.data[i])) {
i++;
}
if (i <= L.length) {
return i;
} else {
return 0;
}
}
```
其中,`SeqList`表示顺序线性表的类型,`ElemType`表示元素的类型,`compare`是元素比较函数,返回值为`true`或`false`。
阅读全文