【数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】

目录😋

任务描述

相关知识

测试说明

我的通关代码:

测试结果:


任务描述

本关任务:实现顺序查找的算法。

相关知识

为了完成本关任务,你需要掌握:1.根据输入数据建立顺序表,2.顺序表的输出,3.顺序查找算法。
提示:

顺序查找算法中要依次输出与k所比较的关键字,用空格分隔开。

假设顺序表中R的关键字依次是3,6,2,10,1,8,5,7,4,9,

若查找的关键字k=5,则SeqSearch函数输出是3,6,2,10,1,8,5,并返回值7。

若查找的关键字为k=15,则函数输出是3,6,2,10,1,8,5,7,4,9,并返回值0。

测试说明

平台会对你编写的代码进行测试:
程序输入示例:

3 6 2 10 1

2
(说明:第一行是输入的一组原始关键字数据,第二行是要查找的关键字)
程序输出示例1:

请输入一组数据 :

关键字序列:3 6 2 10 1

请输入要查找的关键字 :2

查找5所比较的关键字: 3 6 2

元素5的位置是3
程序输出示例2:

请输入一组数据 :

关键字序列:3 6 2 10 1

请输入要查找的关键字 :8

查找15所比较的关键字: 3 6 2 10 1

元素15不在表中

开始你的任务吧,祝你成功!


我的通关代码:

cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;
// 定义查找元素的结构体类型,包含关键字和其他数据(这里暂未详细使用其他数据部分)
struct RecType {
  int key;
  // 可以按需添加其他数据成员及对应操作,此处简化只关注关键字key
};

// 创建顺序表,将输入的关键字数据存入顺序表中
void CreateList(vector<RecType> &R, const vector<int> &keys) {
  for (size_t i = 0; i < keys.size(); ++i) {
    RecType temp;
    temp.key = keys[i];
    R.push_back(temp);
  }
}

// 输出顺序表的函数,遍历顺序表并输出每个元素的关键字
void DispList(const vector<RecType> &R) {
  for (size_t i = 0; i < R.size(); ++i) {
    cout << R[i].key << " ";
  }
  cout << endl;
}

// 顺序查找算法,按照要求输出比较的关键字,并返回查找结果
int SeqSearch(const vector<RecType> &R, int k) {
  for (size_t i = 0; i < R.size(); ++i) {
    cout << R[i].key << " ";
    if (R[i].key == k) {
      return i + 1; // 返回位置,这里的位置是从1开始计数,所以下标加1
    }
  }
  return 0; // 如果没找到,返回0表示元素不在表中
}

int main() {
  vector<RecType> R;
  vector<int> keys;
  cout << "请输入一组数据 :" << endl;
  int num;
  while (cin >> num) {
    keys.push_back(num);
    if (cin.get() == '\n') {
      break;
    }
  }
  CreateList(R, keys);
  cout << "关键字序列:";
  DispList(R);
  int k;
  cin >> k;
  cout << "请输入要查找的关键字 :" << k << endl;

  cout << "查找" << k << "所比较的关键字: ";
  int result = SeqSearch(R, k);
  if (result != 0) {
    cout << endl << "元素" << k << "的位置是" << result << endl;
  } else {
    cout << endl << "元素" << k << "不在表中" << endl;
  }
  return 0;
}

测试结果:


相关推荐
FlightYe2 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
ZhengEnCi2 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
罗西的思考3 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
by209993 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
Rover Ramble3 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
你怎么知道我是队长4 小时前
C++零基础入门第2周:数据类型、运算符与表达式完全指南(附20段可运行代码+避坑清单)
c++
say_fall4 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
雪落漂泊4 小时前
C++算法 滑动窗口篇(下)
开发语言·c++
夜不会漫长5 小时前
C++:红黑树
数据结构·算法
AI备案指南-满满5 小时前
算法备案审核不通过,一般是什么原因?
java·人工智能·算法·大模型备案·算法备案·大模型登记