使用C++实现:给定含有10个整型数据元素的查找表,采用顺序查找方法查找,分别实现一次查找成功和查找不成功;成功时在屏幕上显示“查找成功,比较xx次”。不成功时显示:“查找失败”。要求使用顺序查找函数和创建查找表函数,结构体等数据结构与算法的内容
时间: 2024-02-18 17:05:44 浏览: 96
C++实现旋转数组的二分查找
好的,这里是使用结构体、顺序查找函数和创建查找表函数实现的C++代码:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 10;
struct SeqList
{
int data[MAXSIZE];
int length;
};
// 创建一个顺序查找表
void CreateList(SeqList &L, int a[], int n)
{
for (int i = 0; i < n; i++)
{
L.data[i] = a[i];
}
L.length = n;
}
// 顺序查找函数
int SeqSearch(SeqList L, int key)
{
int i;
for (i = 0; i < L.length; i++)
{
if (L.data[i] == key)
return i;
}
return -1;
}
int main()
{
int a[MAXSIZE] = {1, 3, 5, 6, 9, 12, 15, 18, 20, 21};
SeqList L;
CreateList(L, a, MAXSIZE);
int key, compare = 0;
bool found = false;
cout << "请输入要查找的数:";
cin >> key;
int result = SeqSearch(L, key);
if (result != -1)
{
found = true;
compare = result + 1;
}
if (found)
cout << "查找成功,比较" << compare << "次。";
else
cout << "查找失败。";
return 0;
}
```
在这个代码中,我们首先定义了一个结构体SeqList,它包含一个整型数组data和一个表示数组长度的整型变量length。接下来,我们定义了两个函数:CreateList用来创建一个顺序查找表,SeqSearch用来进行顺序查找。在主函数中,我们创建了一个包含10个整型数据元素的数组a,并将其通过CreateList函数存入结构体SeqList中。然后,通过键盘输入要查找的数key,并调用SeqSearch函数进行查找。如果查找成功,则将found置为true并计算比较次数;如果查找失败,则found保持为false。最后,根据found的值输出查找结果。
这种方法的优点是方便扩展,可以在结构体中添加更多的数据,如元素类型、元素的值等,以适应更多的查找需求;同时,由于使用了函数的封装,代码更加模块化,易于维护和调试。
阅读全文