数据结构与算法编程题41

线性表中各结点的检索概率不等时,可用如下策略提高顺序检索的效率:
若找到指定的结点,则将该结点和其前驱结点(若存在)交换,使得经常被检索
的结点尽量位于表的前端。试设计在顺序结构的线性表上实现上述策略的顺序检索算法。

/*线性表中各结点的检索概率不等时,可用如下策略提高顺序检索的效率:
若找到指定的结点,则将该结点和其前驱结点(若存在)交换,使得经常被检索
的结点尽量位于表的前端。试设计在顺序结构的线性表上实现上述策略的顺序检索算法。*/

#include <iostream>
using namespace std;

typedef int ElemType;
#define Maxsize 100
#define	OK 1
#define  ERROR 0
typedef struct SqList
{
	ElemType data[Maxsize];
	int length;
}SqList;

void Init_SqList(SqList& L)
{
	L.length = 0;
}

void put_front(SqList& L, int k)
{	
	int temp = 0;
	if (L.data[0] == k)
	{
		cout << "元素已经找到,且元素位于第一个,前面无数据!!!"<<endl;
	}
	else
	{
		for (int i = 1; i < L.length; i++)
		{
			if (L.data[i] == k)
			{
				temp = L.data[i-1];
				L.data[i - 1] = L.data[i];
				L.data[i] = temp;
				cout << "元素已经找到" << endl;
				return;	  //找到直接结束
			}
		}
	}
}
// 0   1   2   3   4   5   6
//12  25  56   4  78   9 100
int main(void)
{
	SqList L;
	Init_SqList(L);
	L.data[0] = 12;
	L.data[1] = 25;
	L.data[2] = 56;
	L.data[3] = 4;
	L.data[4] = 78;
	L.data[5] = 9;
	L.data[6] = 100;
	L.length = 7;
	cout << "初始化顺序表" << endl;
	for (int i = 0; i < L.length; i++)
		cout << L.data[i]<<"  ";
	cout << endl; //换行
	cout << "请输入需要查找的数据" << endl;
	int k = 0;
	cin >> k;
	put_front(L, k);
	cout << "交换后顺序表" << endl;
	for (int i = 0; i < L.length; i++)
		cout << L.data[i] << "  ";
	cout << endl; //换行
	return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中项目部署步骤

安装jdk&#xff0c;tomcat 安装步骤 1&#xff0c;将压缩包&#xff0c;拷贝到虚拟机中。 通过工具&#xff0c;将文件直接拖到虚拟机的/home下 2&#xff0c;回到虚拟机中&#xff0c;查看/home下&#xff0c;有两个压缩文件 3&#xff0c;给压缩文件做解压缩操作 tar -z…

vue项目解决计算后浮点数精度问题

1.1 问题描述 计算出的结果本来应该为13.8386&#xff0c;但是这里因为js精度问题&#xff0c;导致后边多了一串的0000001。 1.2 使用场景 求和&#xff0c;每个物品的单价*数量 1.3 解决办法 引入第三方库Decimal 1.4 vue项目中Decimal安装步骤 1.4.1 安装Decimal np…

【Cesium】模型平面裁切

const scene viewer.scene;let tileset; let targetY 400.0; let planeEntities []; let selectedPlane; // 选择的切面 let clippingPlanes; // 切面属性// 当鼠标点击切面时&#xff0c;修改相关属性 const downHandler new Cesium.ScreenSpaceEventHandler(viewer.sce…

Pinia的基础使用

main.ts import { createApp } from "vue"; import { createPinia } from "pinia"; import "./style.css"; import App from "./App.vue"; const pinia createPinia(); createApp(App).use(pinia).mount("#app");1.定义st…

商务助理个人简历10篇

商务助理简历模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;来幻主简历&#xff0c;做好简历&#xff01; 商务助理简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 意向岗位&#xff1a;国际商务、产品助理 意向城市&#xff1a;广东广州 …

驱动开发--内核添加新功能

Ubuntu下这个文件为开发板ls命令的结果 内核的内容&#xff1a; mm&#xff1a;内存管理 fs&#xff1a;文件系统 net&#xff1a;网络协议栈 drivers&#xff1a;驱动设备 arch与init&#xff1a;跟启动相关 kernel与ipc&#xff1a;任务&#xff0c;进程相关 向内核增…

家用打印机品牌多,种类杂,那么如何挑选最适合的家用打印机

在购买最好的家用打印机时&#xff0c;你可能会寻找足够多功能的打印机来满足每个人的需求。你的家人可能需要复印文件签字&#xff0c;扫描精致的旧照片&#xff0c;或者在接到通知后立即打印长篇文章或报告。良好的扫描功能确保你可以快速高效地将工作数字化&#xff0c;而每…

TCP/IP的体系结构

目录 一、TCP/IP的体系结构 二、TCP/IP四层协议的表示方法举例 三、现在因特网使用的TCP/IP体系结构 四、互联网应用层的客户——服务器方式 一、TCP/IP的体系结构 二、TCP/IP四层协议的表示方法举例 三、现在因特网使用的TCP/IP体系结构 四、互联网应用层的客户——服务器…

校园局域网规划设计

摘 要 随着网络技术的发展&#xff0c;校园网的建设已经进入到一个蓬勃发展的阶段。校园网的建成和使用&#xff0c;对于提高教学和科研的质量、改善教学和科研条件、加快学校的信息化进程&#xff0c;开展多媒体教学与研究以及使教学多出人才、科研多出成果有着十分重要而深远…

香港服务器时间不准,差8小时

解决方案1 1、timedatectl查看系统时间 2、查看系统时区 ls /usr/share/zoneinfo 3、删除当前系统所处时区 rm /etc/localtime 4、创建软链接&#xff0c;以替换当前的时区信息 ln -s /usr/share/zoneinfo/Universal /etc/localtime 解决方案2 手动设置硬件时钟 1、设置系…

MySQL limit导致索引选择(选择的并不是最佳索引)案例分析

mysql limit导致索引选择&#xff08;选择的并不是最佳索引&#xff09;案例分析&#xff1a; 这种情况可能是mysql优化器内部bug造成&#xff1a; bug 触发条件如下: 1.优化器先选择了 where 条件中字段的索引&#xff0c;该索引过滤性较好&#xff1b; 2.SQL 中必须有 orde…

视频处理关键知识

1 引言 视频技术发展到现在已经有100多年的历史&#xff0c;虽然比照相技术历史时间短&#xff0c;但在过去很长一段时间之内都是最重要的媒体。由于互联网在新世纪的崛起&#xff0c;使得传统的媒体技术有了更好的发展平台&#xff0c;应运而生了新的多媒体技术。而多媒体技术…

合理布局CRM系统,提升工作效率

一般来说中小企业试用的CRM系统的销售管理模块主要服务于销售人员&#xff0c;CRM系统通过为销售人员提供一系列销售自动化工具&#xff0c;来简化他们的工作&#xff0c;加速销售周期。那么&#xff0c;中小企业CRM系统如何提高销售效率&#xff1f; 一、通用功能 1、销售管…

人工智能辅助决策中的反常识与反逻辑

在人工智能辅助决策中&#xff0c;直觉与假设、常识与逻辑起着重要的作用。机器学习模型可以通过大量数据训练获得某种机器直觉&#xff0c;从而帮助我们更好地理解和分析数据&#xff0c;我们可以根据已有的数据和知识来推断未知的信息&#xff0c;更加准确地预测和判断结果&a…

外汇天眼:假冒、非法经营成常态?超60家外汇平台被拉黑

近期&#xff0c;全球范围内多个国家的金融监管机构纷纷发出警告&#xff0c;揭露一系列假冒、非法经营的外汇交易平台。比利时金融服务和市场管理局&#xff08;FSMA&#xff09;发现53家外汇平台涉嫌非法运营&#xff0c;而意大利CONSOB和英国金融行为监管局&#xff08;FCA&…

uniapp开发小程序经验记录

uniapp开发小程序的过程中会遇到很多问题&#xff0c;这里记录一下相关工具优化&#xff0c;便于后来者参考。 每次保存代码后&#xff0c;小程序都跳回首页 针对这个问题&#xff0c;常规的做法就是修改pages配置文件&#xff0c;但是这种方式不便于路由参数的设置&#xff…

什么是静态链接?有什么用?

文章目录 Linux下的链接器:ldld的作用 可重定位目标文件可重定位目标文件的结构是怎么样的?1. 文件头&#xff08;File Header&#xff09;&#xff1a;2. 节头表&#xff08;Section Header Table&#xff09;&#xff1a;3. 节区&#xff08;Sections&#xff09;&#xff1…

消费数据可视化大屏,助力金融机构智慧运维

在今天的数字化时代&#xff0c;消费数据的可视化已经成为了一种重要的趋势。通过将消费数据以图表、图像等形式展现出来&#xff0c;可以帮助我们更直观地了解消费者的行为和趋势。同时&#xff0c;这也为企业提供了更多的分析和决策依据。无论是针对市场营销策略的制定&#…

安卓ncnn部署分割模型

任务&#xff1a;使用ncnn部署分割模型 准备工作 torch转成onnx模型&#xff0c;略~使用onnxsim简化onnx模型&#xff1b;onnx转ncnn模型&#xff0c;网址https://convertmodel.com/ 准备工作完毕&#xff0c;部署 本文代码链接&#xff0c;先看效果图&#xff0c;这是一个…

【漏洞复现】速达软件存在任意文件上传

漏洞描述 速达软件全系产品存在任意文件上传漏洞,未经身份认证的攻击者可以通过此漏洞上传恶意后门文件,执行任意指令,造成服务器失陷 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、…