尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x

《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x 题目描述请编写程序将nnn个整数存入顺序表对任一给定整数xxx查找其在顺序表中的位置。输入格式输入首先在第一行给出正整数nnn≤104\le 10^4≤104随后一行给出nnn个 int 范围内的不重复的整数数字间以空格分隔最后一行给出待查找的元素xxx也是 int 范围内的整数。输出格式在一行中输出xxx在顺序表中的位置即数组下标。如果没找到则输出 -1。注意数组下标从 0 开始。输入样例5 1 2 3 4 5 4输出样例3输入样例5 4 3 6 8 0 1输出样例-1解题思路顺序表在内存中是连续存储的查找元素xxx最直接的方法是顺序查找线性查找从下标 0 开始逐个比较找到第一个等于xxx的元素即返回其下标。由于题目保证数据不重复第一个匹配到的位置就是唯一答案用pos记录结果默认 -1 表示未找到。时间复杂度O(n)O(n)O(n)最坏情况需要比较全部元素。空间复杂度O(n)O(n)O(n)存储顺序表本身。代码流程说明读入nnn并将nnn个整数存入数组a。读入待查找元素xxx。将pos初始化为 -1。从下标 0 到n−1n-1n−1遍历数组若a[i] x记录pos i并跳出循环。输出pos并换行。代码实现#includeiostreamusingnamespacestd;constintMAXN10005;inta[MAXN];intmain(){intn,x;cinn;for(inti0;in;i)cina[i];cinx;intpos-1;for(inti0;in;i){if(a[i]x){posi;break;}}coutposendl;return0;}代码流程图是是否否开始读入 n 和数组元素读入待查找元素 xpos 初始化为 -1i 从 0 到 n-1a i 是否等于 xpos 等于 i 并跳出循环输出 posi 加 1结束解题流程图是否是否在顺序表中查找元素 x读入 n 和表元素读入待查找元素 x从下标 0 开始逐个比较是否找到等于 x 的元素返回该元素下标是否还有元素返回 -1输出结果
返回列表