1、新建项目:二分查找。2、在项目中新建文件OrderList.cpp。3、在OrderList.cpp中实现OrderListlnsert及OrderListLocate方法,并在主函数中使用所提供的测试函数void OrderListTest()进行测试
时间: 2024-05-06 07:18:53 浏览: 38
好的,下面是实现代码:
OrderList.cpp:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义顺序表最大长度
typedef struct {
int r[MAXSIZE + 1]; // 存储顺序表元素,r[0]存放顺序表长度
int length;
} SqList;
// 初始化顺序表
void InitList(SqList& L) {
L.length = 0;
}
// 插入元素
bool OrderListInsert(SqList& L, int e) {
if (L.length == MAXSIZE) {
return false; // 顺序表已满
}
int i = L.length - 1;
while (i >= 0 && L.r[i] > e) {
L.r[i + 1] = L.r[i];
i--;
}
L.r[i + 1] = e;
L.length++;
return true;
}
// 查找元素位置
int OrderListLocate(SqList& L, int e) {
int low = 0;
int high = L.length - 1;
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (L.r[mid] == e) {
return mid;
} else if (L.r[mid] < e) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1; // 没有找到
}
// 测试函数
void OrderListTest() {
SqList L;
InitList(L);
OrderListInsert(L, 5);
OrderListInsert(L, 2);
OrderListInsert(L, 7);
OrderListInsert(L, 1);
OrderListInsert(L, 9);
int result = OrderListLocate(L, 7);
if (result == -1) {
cout << "未找到元素" << endl;
} else {
cout << "元素7的位置为:" << result << endl;
}
}
```
主函数:
```cpp
int main() {
OrderListTest();
return 0;
}
```
运行结果:
```
元素7的位置为:3
```
阅读全文