当前位置: 首页 > news >正文

散列查找实验(开散列) 题目编号:583

题目描述

请设计一个整型开散列表,散列函数为除留余数法,其中散列表的长度、除留余数法的模和关键码的个数由键盘输入,再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找,输出查找结果采用头插法。

输入描述

各个命令以及相关数据的输入格式如下:
第一行输入闭散列表的长度n
第二行输入除留余数法的模m
第三行输入关键码的个数num
第四行输入num个整型关键码
第五行输入三个待查整型值

输出描述

输出三行,每行格式为:
如果找到待查值,输出找到待查值的位置,先输出待查值在散列表指针数组中的下标,
再输出待查值在关键码链表中的位置,从1开始,如果没找到,输出“none”,并把待查值
插入到开散列表中

输入样例

11 11 9
2 6 8 9 13 17 10 12 20
11 13 9

输出样例

none
2 1
9 2
内存阀值:102400K 耗时阀值:5000MS

代码

#include <iostream>#define MAXSIZE 100using namespace std;struct KeyNode {int _key;KeyNode* _next;KeyNode(int key):_key(key), _next(NULL) {} 
};class Hash {public:Hash(int len, int mod);~Hash();public:void Insert(int key);void Find(int key);private:int getPos(int key);private:int len_;int mod_;KeyNode* bucket_[MAXSIZE];
};Hash::Hash(int len, int mod):len_(len), mod_(mod) {for (int i = 0; i < len_; i++) {bucket_[i] = NULL;}
}Hash::~Hash() {for (int i = 0; i < len_; i++) {KeyNode* temp;for (KeyNode* p = bucket_[i]; p != NULL; p = temp) {temp = p->_next;delete p;}}}void Hash::Insert(int key) {int in = key % mod_;KeyNode* temp = new KeyNode(key);temp->_next = bucket_[in];bucket_[in] = temp;
}void Hash::Find(int key) {int in = key % mod_;if (bucket_[in] == NULL) {Insert(key);throw "none";}bool isFind = false;for (KeyNode* p = bucket_[in]; p != NULL; p = p->_next) {if (p->_key == key) {isFind = true;cout << in << ' ' << getPos(key) ;break;}}if (isFind == false) {Insert(key);throw "none";}
}int Hash::getPos(int key) {int in = key % mod_;int count = 1;for (KeyNode* p = bucket_[in]; p->_key != key; p = p->_next) {count++;}return count;
}int main() {int len, mod, n, key;cin >> len >> mod >> n;Hash h(len, mod);for (int i = 0; i < n; i++) {cin >> key;h.Insert(key);}for (int i = 0; i < 3; i++) {cin >> key;try {h.Find(key);	} catch (const char* str) {cout << str ;}}return 0;

相关文章:

散列查找实验(开散列) 题目编号:583

题目描述 请设计一个整型开散列表&#xff0c;散列函数为除留余数法&#xff0c;其中散列表的长度、除留余数法的模和关键码的个数由键盘输入&#xff0c;再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找&#xff0c;输出查找结果采用头插法。 输入描…...

Java版spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...

Go type关键字定义新类型和类型别名的区别

type关键字再定义类型和类型别名有很大的区别&#xff0c;前者是新定义一个数据类型&#xff0c;后者是对类型的重命名。 type NewString stringtype OldString stringtype NewString string声明了一个NewString类型&#xff0c;和string具有完全一致的数据结构&#xff0c;确…...

Neural Network学习笔记2

torch.nn: Containers: 神经网络骨架 Convolution Layers 卷积层 Pooling Layers 池化层 Normalization Layers 正则化层 Non-linear Activations (weighted sum, nonlinearity) 非线性激活 Convolution Layers Conv2d torch.nn.Conv2d(in_channels, out_channels, ke…...

用@Value注解为bean的属性赋值

1.Value注解 Value注解的源码&#xff0c;如下所示 Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface Value {String value(); }从Value注解的源码中…...

拨云见日:深入理解 HTML 解析器与有限状态机

文章目录 参考描述状态机状态机有限状态机与无限状态机有限状态机与自动售货机无限状态机与计算器 HTML 解析器HTML 解析器HTML 与有限状态机 HTML 解析器的常见状态初始状态DOCTYPE 状态注释状态标签状态开始标签状态属性状态属性名状态属性值状态 结束标签状态自闭和标签状态…...

Java线程池及其实现原理

线程池概述 线程池&#xff08;Thread Pool&#xff09;是一种基于池化思想管理线程的工具&#xff0c;经常出现在多线程服务器中&#xff0c;如MySQL。 线程过多会带来额外的开销&#xff0c;其中包括创建销毁线程的开销、调度线程的开销等等&#xff0c;同时也降低了计算机…...

进程替换函数组介绍exec*

目录 前述 execl execlp execle execv execvp execvpe 前述 介绍后缀的意义&#xff1a; l &#xff08;list&#xff09;&#xff1a;表示参数采用列表。 v&#xff08;vector&#xff09;&#xff1a;参数同数组表示。 p&#xff08;path&#xff09;&#xff1a;自…...

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…...

KubeVirt备份与还原方案【翻译】

KubeVirt备份与还原方案【翻译】 ref:https://github.com/kubevirt/kubevirt/blob/main/docs/backup-restore-integration.md 备份 为所有必需的k8s资源构建依赖关系图冻结应用程序pvc数据快照解冻应用程序将所有必需的k8s资源定义拷贝到一个共享的存储位置&#xff08;可选…...

使用PyQt5设计一款简单的计算器

目录 一、环境配置&#xff1a; 二、代码实现 三、主程序 四、总结 本文使用PyQt5设计一款简单的计算器&#xff0c;可以通过界面交互实现加减乘除的功能&#xff0c;希望能够给初学者一些帮助。主要涉及的知识点有类的定义与初始化、类的成员函数、pyqt5的信号与槽函数等。…...

Htop使用说明

目录 引言 什么是htop htop安装 htop界面介绍 htop功能介绍 引言 我们使用服务器的时候常常需要关注下自己的程序资源占用情况&#xff0c;htop就是一种互动式的进程查查看器&#xff0c;整齐用下来感觉比top的逼格高&#xff0c;造作可视化都更方便些&#xff0c;我觉得还…...

PostgreSQL Linux安装

安装依赖&#xff1a; sudo yum -y install readline-devel zlib-devel 安装Postgres&#xff1a; ssh hadoophadoop001 #下载Postgres wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz tar -zxvf postgresql-14.2.tar.gz -C /data #编译前准备 /dat…...

亚商投资顾问 早餐FM/0509车辆电动化

01/亚商投资顾问 早间导读 1.上交所拟于5月11日举办“发现央企投资价值&#xff0c;促进央企估值回归”交流会 2.监管部门十方面举措加强房地产经纪行业管理 3.广东&#xff1a;推动城市公共服务及货运配送车辆电动化替代 4.昆山两楼盘因大幅降价被暂停网签&#xff1a;降幅…...

AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我&#xff0c;备注&#xff1a;aigc&#xff0c;拉你进群。 现在市面上AI绘图大概有三大阵营&#xff1a;Midjourney、Stable Diffusion&#xff0c;还有一个就是OpenAI实…...

学习笔记(2)项目结构描述 - manifest.json和pages.json

目录 1&#xff0c;manifest.json2&#xff0c;pages.json2.1&#xff0c;pages2.2&#xff0c;globalStyle2.3&#xff0c;tabBar 1&#xff0c;manifest.json 官方详情 uni-app 的 appid 由 DCloud 云端分配&#xff0c;主要用于 DCloud 相关的云服务&#xff0c;请勿自行修…...

vector、deque、list相关知识点

vector erase返回迭代器指向删除元素后的元素insert返回迭代器指插入的元素reserve只给容器底层开指定大小内存空间&#xff0c;并不添加新元素 deque 底层数据结构 动态开辟的二维数组&#xff0c;一维数组从2开始&#xff0c;以2倍方式扩容&#xff0c;每次扩容和&#x…...

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比 目录 多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 多维时序 …...

设计模式——适配器模式(类适配器、对象适配器)

是什么&#xff1f; 我们平时的有线耳机接口分为USB的和Type-C的接口&#xff0c;但是手机的耳机插口却只有一个&#xff0c;像华为的耳机插口现在基本都是Type-c的&#xff0c;那如果我们现在只有USB接口的耳机怎么办呢&#xff0c;这个时候就需要使用到一个转换器&#xff0c…...

iOS开发多target

场景 背景:设想一下有一个场景,一个业务分为多种身份,他们大部分功能是相同的,但是也有自己的差异性。这种情况,想要构建出不同身份的APP。你会怎么做??? 当然,你可以拷贝一份代码出来,给项目重新命名。这样做的好处是,他们互相不会冲突,不用去关心是否有逻辑的冲…...

OpenClaw多模态扩展:Qwen3.5-4B-Claude分析截图内容

OpenClaw多模态扩展&#xff1a;Qwen3.5-4B-Claude分析截图内容 1. 为什么需要截图分析能力 上周我在整理项目文档时遇到了一个典型问题&#xff1a;客户发来的需求变更截图散落在十几个微信对话中&#xff0c;我需要手动对照图片内容更新PRD文档。这种机械操作不仅耗时&…...

电容选型实战指南

电容选型这件事,比电阻要复杂得多。电阻选错了,大多数情况是“烧了”或“不准了”;电容选错了,可能直接导致系统复位、EMI超标、寿命骤减、甚至爆炸。电容是电路中最“敏感”的元件之一,它的选型需要在电气性能、温度特性、寿命、成本、体积之间反复权衡。 一、 选型前的四…...

分块技术全解析:长上下文没有杀死它,反而让它成了 RAG 的核心命门

随着 GPT-4o、Claude 3.7 等大模型将上下文窗口推至百万 Token 级别&#xff0c;行业里出现了一种极具误导性的声音&#xff1a;“长上下文已经让文本分块&#xff08;Chunking&#xff09;技术彻底过时了”。但现实恰恰相反&#xff0c;长上下文不仅没有淘汰分块&#xff0c;反…...

高数 | 【极限运算陷阱】破解未定式与直接代入的边界条件

1. 极限运算中的未定式&#xff1a;为什么不能直接代入&#xff1f; 第一次接触极限运算时&#xff0c;很多同学都会犯一个典型错误——看到x趋近于某个值&#xff0c;就直接把这个值代入函数计算。我当年学高数时也踩过这个坑&#xff0c;直到作业本上连续出现三个大红叉才意识…...

CosyVoice集成Java Web应用:构建智能语音播报后端服务

CosyVoice集成Java Web应用&#xff1a;构建智能语音播报后端服务 最近在做一个在线教育平台的项目&#xff0c;需要给课程内容加上语音播报功能。一开始我们试过一些现成的语音合成服务&#xff0c;要么价格太贵&#xff0c;要么声音不够自然。后来发现星图GPU平台上有个Cosy…...

YOLOv8损失函数魔改实战:5步搞定MPDIoU集成,附metrics.py与loss.py完整修改代码

YOLOv8损失函数魔改实战&#xff1a;5步搞定MPDIoU集成&#xff0c;附metrics.py与loss.py完整修改代码 目标检测模型的性能优化往往从损失函数入手。MPDIoU作为新一代边界框回归损失函数&#xff0c;通过同时考虑两个对角点距离&#xff0c;有效解决了传统IoU系列损失在相同宽…...

STEP3-VL-10B WebUI教程:自定义快捷提示词模板+一键插入常用指令

STEP3-VL-10B WebUI教程&#xff1a;自定义快捷提示词模板一键插入常用指令 你是不是每次用多模态AI模型时&#xff0c;都要重复输入那些固定的指令&#xff1f;比如“请详细描述这张图片”、“帮我分析这个图表的数据”、“用中文回答”……一遍又一遍地打字&#xff0c;不仅…...

实战掌握Kohya_SS AI模型训练:从零基础到精通的完整指南

实战掌握Kohya_SS AI模型训练&#xff1a;从零基础到精通的完整指南 【免费下载链接】kohya_ss 项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss Kohya_SS是一款功能强大的开源AI模型训练工具&#xff0c;专为Stable Diffusion等扩散模型提供完整的图形化训…...

高效智能抖音直播下载工具:一站式解决方案

高效智能抖音直播下载工具&#xff1a;一站式解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾经为错过精彩的抖音直播而遗憾&#xff1f;是否想要保存喜欢的直播内容却苦于没有合适的工具&a…...

纯本地运行!AgentCPM深度研报助手,手把手教你离线生成研究报告

纯本地运行&#xff01;AgentCPM深度研报助手&#xff0c;手把手教你离线生成研究报告 1. 为什么选择本地研报生成工具&#xff1f; 在信息爆炸的时代&#xff0c;专业研究报告的撰写面临三大痛点&#xff1a; 时间压力&#xff1a;从零开始撰写一份深度报告平均需要40-60小…...