c++实现编程实现如下功能: (1)根据输入的查找表的表长n和n个关键字值,建立顺序查找表,并在此查找表中用顺序查找方法查找给定关键值的记录,最后输出查找结果。 (2)根据输入的查找表的表长n和n个按升排列的关键字值,建立有序顺序查找表,并在此查找表中用二分查找方法查找给定关键值的记录,最后输出查找结果。 (3)主程序中要求设计一个菜单,允许用户通过菜单来多次选择执行哪一种查找操作。
时间: 2024-03-26 09:35:31 浏览: 51
C++实现的各种功能
以下是实现功能的C++代码:
```c++
#include <iostream>
using namespace std;
// 顺序查找函数
int sequentialSearch(int arr[], int n, int x) {
for(int i = 0; i < n; i++) {
if(arr[i] == x) {
return i;
}
}
return -1;
}
// 二分查找函数
int binarySearch(int arr[], int left, int right, int x) {
while(left <= right) {
int mid = left + (right - left) / 2;
if(arr[mid] == x) {
return mid;
} else if(arr[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
// 创建顺序查找表
void createSequentialTable(int arr[], int n) {
cout << "请输入" << n << "个关键字值:" << endl;
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
}
// 创建有序顺序查找表
void createOrderedSequentialTable(int arr[], int n) {
cout << "请输入" << n << "个按升序排列的关键字值:" << endl;
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
}
int main() {
int choice, n, x;
cout << "请输入查找表的表长n:" << endl;
cin >> n;
int arr[n];
createSequentialTable(arr, n); // 创建顺序查找表
createOrderedSequentialTable(arr, n); // 创建有序顺序查找表
while(true) {
cout << "请输入要进行的操作:" << endl;
cout << "1. 顺序查找" << endl;
cout << "2. 二分查找" << endl;
cout << "3. 退出" << endl;
cin >> choice;
switch(choice) {
case 1:
cout << "请输入要查找的值:" << endl;
cin >> x;
int result1 = sequentialSearch(arr, n, x);
if(result1 == -1) {
cout << "未找到该值!" << endl;
} else {
cout << "该值位于第" << result1+1 << "个位置。" << endl;
}
break;
case 2:
cout << "请输入要查找的值:" << endl;
cin >> x;
int result2 = binarySearch(arr, 0, n-1, x);
if(result2 == -1) {
cout << "未找到该值!" << endl;
} else {
cout << "该值位于第"
阅读全文