4020基于链地址法的散列表的插入_第6关:基于链地址法的散列表的插入-程序员宅基地

技术标签: 数据结构  哈希表  

描述

请写出在散列表中插入关键字为k的一个记录的算法,设散列函数为H,H(key)=key%13,解决冲突的方法为链地址法。

输入

多组数据,每组三行,第一行为待输入的关键字的个数n,第二行为对应的n个关键字,第三行为需要插入的关键字k。当n=0时输入结束。

输出

每组数据输出用链地址法处理冲突的散列表。

输入样例 1 

5
1 4 2 3 5
6
4
2 5 8 15
18
0

输出样例 1

0
1 1
2 2
3 3
4 4
5 5
6 6
7
8
9
10
11
12
0
1
2 2 15
3
4
5 5 18
6
7
8 8
9
10
11
12
//基于链地址法的散列表的插入
#include <iostream>
using namespace std;
typedef struct LNode{
	int data;
	LNode *next;
}LNode,*LinkList;
int main(){
	int n;
	while(cin>>n&&n!=0){
		LinkList H[13];
		for(int i=0;i<=12;i++){//把链表数组里的所有头结点初始化 
			H[i]=new LNode;
			H[i]->next=NULL;
		}
		for(int i=1;i<=n+1;i++){//插入n+1个结点 
			int data;
			cin>>data;
			LinkList p=H[data%13];//此处可以决定插到哪个表的后面 
			while(p->next)
				p=p->next;
			LinkList s=new LNode;
			s->data=data;
			s->next=NULL;
			p->next=s;
		}
		for(int i=0;i<=12;i++){//输出全部结点 
			cout<<i;
			LinkList p=H[i]->next;
			while(p){
				cout<<" "<<p->data;
				p=p->next;
			}
			cout<<endl;
		}
	}
	return 0;
} 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_51135645/article/details/121653065

智能推荐

教你用Python爬取哔哩哔哩全站视频信息_b站访问权限不足爬虫-程序员宅基地

文章浏览阅读1.8k次。哔哩哔哩全站视频信息爬虫(可能会漏爬)B 站感觉最近几年发展得太快了,不由得想知道有多少视频,翻阅了一大半网络找了很多爬虫感觉都不是特别的复合自己的胃口(挑食~),于是自己写一个(才学习爬虫没多久写得垃圾代码大佬别喷我啊….)很多人学习python,不知道从何学起。很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。很多已经做案例的人,却不知道如何去学习更加高深的知识。那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤QQ群_b站访问权限不足爬虫

(新版)SJTU-OJ-1003. 在麦当劳配数据-程序员宅基地

文章浏览阅读431次,点赞4次,收藏2次。题目描述注意:本题可以使用的头文件仅限于cstdioiostreamcstring梦回高三,小艾想起了几个月前背诵高考古诗文篇目的时光……已经是晚上了。第二天有小测,可是小艾还有篇古诗文没有背。这篇古诗文都有一个对应的瞌睡值,也就是说,选择背诵篇目会让小艾的瞌睡程度增加​。小艾目前的瞌睡程度已经是,而当小艾的瞌睡程度时,小艾会直接睡到明早,那可就没有更多的时间背了!注意,因为背了一半的文章也是没背出来的文章,所以恰好让小艾瞌睡程度的那篇也视作没背的。好在小测考到每个篇目的概率是一..._在麦当劳配数据

ubuntu16安装colmap的问题及解决方案_cudasetupargument 未定义的引用-程序员宅基地

文章浏览阅读2.3k次,点赞14次,收藏28次。最近想入门一下三维重建,看了一些三维重建的论文,还是想从SFM入手。先了解一下SFM里面经典的colmap(论文:[Structure-from-Motion Revisited](https://demuc.de/papers/schoenberger2016sfm.pdf)),看论文难以深入理解,所以打算看看源码,也是为了完成一个小小礼物。_cudasetupargument 未定义的引用

windows使用libvlc进行网络串流遇到的一些问题及解决方法_libvlc网络-程序员宅基地

文章浏览阅读857次。windows使用libvlc进行网络串流遇到的一些问题及解决方法_libvlc网络

ffmpeg--libswscale(图像缩放、颜色空间和像素格式转换操作)-程序员宅基地

文章浏览阅读1k次。主要函数:(1) sws_getContext():使用参数初始化SwsContext结构体。 可以用另一个接口函数sws_getCachedContext()取代。(2) sws_scale():转换一帧图像。(3) sws_freeContext():释放SwsContext结构体。初始化方式2种:①sws_getContext②sws_al..._libswscale

Python#Flask#Mysql水质监测预警系统10148-计算机毕业设计(附源码)_水位在线监测预警系统开发-程序员宅基地

文章浏览阅读178次,点赞3次,收藏2次。本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于python的Flask框架进行开发。前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。后端部分:基于python语言以Flask作为开发框架,同时集成Redis,Echarts等相关技。_水位在线监测预警系统开发

随便推点

J2EE快速开发平台-程序员宅基地

文章浏览阅读48次。2019独角兽企业重金招聘Python工程师标准>>> ..._j2ee开放平台

Docker快速搭建Jaeger开发环境(Docker 部署Jaeger all-in-one)_docker 部署jaeger 部署-程序员宅基地

文章浏览阅读6.4k次。通过Docker 快速搭建Jaeger 本地测试、开发联调环境。_docker 部署jaeger 部署

Kotlin中的@Metadata-程序员宅基地

文章浏览阅读8.3k次,点赞2次,收藏7次。本文简单介绍了下注解Metadata各个字段的含义及其与反射的关系。Kotlin 允许我们对各种 Kotlin 的语法特性进行访问,不过,这里应该有一个问题没有搞清楚:既然 Java 反射对于 Kotlin 的很多特性都无法访问和识别,换句话说,Java 虚拟机也是无法知道他们的,那么 Kotlin 的反射是如何做到这一点的呢?这实际上主要是得益于kotlin.Metadata这个..._@metadata

深入理解Android音视频同步机制(五)如何从零开始写一个音视频同步的播放器_getplaybackheadposition-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏31次。前面我们分析了三个播放器的av sync逻辑,可以看到他们都各有不同,那么究竟哪种方法可以达到最好的avsync结果?哪些逻辑是必要的?如果我们想自己从零开始写一个av同步的播放器,都需要做哪些工作?本文通过一个demo解答上面的问题_getplaybackheadposition

linux 磁盘盘符改变,硬盘盘符重启后 自动切换——根据UUID挂载磁盘-程序员宅基地

文章浏览阅读997次。[root@platform-103 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 252:0 0 60G 0 disk├─vda1 252:1 0 500M 0 part /boo..._linux重启后盘符交换

数据结构与算法详解——散列表篇(附c++实现代码)_设计算法,将数组a 进行散列存储,以解决-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏15次。目录散列表散列函数哈希冲突开放地址法线性探测二次探测双重散列链表法装载因子散列表  前面数组、链表、栈、队列都是序列式容器,存储的都是一个元素。而散列表又叫哈希表(hash table),是一种关联式容器,存储的是一对值,一般是一个key对应一个value(又叫键值对)。  c++ stl中的map就是一个散列表,举个例子:std::map<std::string,int> m;m["小明"]=170;std::cout<<"小明的身高是"<<m["小明"]&_设计算法,将数组a 进行散列存储,以解决

推荐文章

热门文章

相关标签