编写一个程序exp9-1.cpp,输出 在顺序表(3,6,2,10.1.8,5,7,4,9)中采用顺序查找方法查找关键字 5的过程。
时间: 2023-09-14 07:16:00 浏览: 163
程序如下:
```cpp
#include <iostream>
using namespace std;
#define MAXSIZE 100 // 定义最大长度
typedef struct {
int r[MAXSIZE]; // 存储空间基址
int length; // 当前长度
} SqList; // 顺序表类型定义
// 初始化顺序表
void InitList(SqList &L) {
int r[] = {3,6,2,10,1,8,5,7,4,9}; // 初始数组
for (int i = 0; i < sizeof(r)/sizeof(r[0]); i++) {
L.r[i] = r[i];
}
L.length = sizeof(r)/sizeof(r[0]);
}
// 顺序查找算法
int SeqSearch(SqList L, int key) {
for (int i = 0; i < L.length; i++) {
if (L.r[i] == key) {
return i + 1; // 返回关键字在表中的位置
}
}
return 0; // 表示查找失败
}
int main() {
SqList L;
InitList(L);
int key = 5; // 要查找的关键字
int pos = SeqSearch(L, key);
if (pos) {
cout << "查找成功,关键字 " << key << " 在表中的位置是:" << pos << endl;
} else {
cout << "查找失败,关键字 " << key << " 不在表中!" << endl;
}
return 0;
}
```
输出结果:
```
查找成功,关键字 5 在表中的位置是:7
```
解释:程序中定义了一个顺序表,初始值为{3,6,2,10,1,8,5,7,4,9},然后调用顺序查找算法,查找关键字 5 的位置,最后输出结果。因为关键字 5 在表中,所以输出查找成功。
阅读全文