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

目录😋

任务描述

相关知识

测试说明

我的通关代码:

测试结果:


任务描述

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

相关知识

为了完成本关任务,你需要掌握: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;
}

测试结果:


相关推荐
罗西的思考9 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
CSharp精选营11 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
美团技术团队12 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
用户8055336980319 小时前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
To_OC1 天前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC1 天前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode
BadBadBad__AK1 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境2 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
_清歌2 天前
DSpark 深度解读:DeepSeek-V4 如何用「半自回归」把推理速度提升 85%
算法