【问题描述】
为了美丽的校园计划,学校决定改进排队制度,比如说给饭卡充钱等……
给每个人一个RP值,这个RP值决定这个人来了之后要排的位置,如果当前位置已经有人,
那么从这个位置以后的人后移一位,这个人插进去,如果没有人的话就直接排到这个位置上去。
现在已知按时间从前到后来的人的名字和RP值,求按排队顺序输出排队人的名字。
【任务要求】
任务要求:用链地址法解决冲突的方式建立哈希表,将RP值相同的元素利用头插法插入到同一个单链表中,并依次输出哈希表中的每一个链表。如:

【测试数据】
输入
多组测试数据,以文件结束
每组首先一个n(1<=n<=200000),接着一行是名字和RP值,名字是不超过20的字符串
RP值不超过int
输出
按排队顺序输出排队人的名字
样例输入:
4
Yougth 1
yuanhang 2
kaichuang 2
yaoyao 1
样例输出
yaoyao Yougth kaichuang yuanhang
代码:

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 10  // RP值得范围
typedef struct node
{char NAME[20];//姓名int RP;//RP值struct node *next;//后继}NODE;
void Hxb(NODE *M)//初始化
{int i;for (i = 0; i < MAX; i++){M[i].next = NULL;//每个单元后继置空}
}
void Createhxb(NODE *M, char name[], int rp)//建哈希表
{NODE *s;//新结点s = (NODE *)malloc(sizeof(NODE));//分配空间strcpy(s->NAME , name);s->RP = rp;/*头插法*/s->next = M[rp].next;M[rp].next = s;}
int main()
{NODE *M,*p;int n,rp,i=0;char name[MAX];scanf("%d", &n);M = (NODE *)malloc(sizeof(NODE)*MAX);Hxb(M);/*输入创建*/while (n--){scanf("%s%d", name, &rp);Createhxb(M, name, rp);}/*输出哈希表*/for (i = 0; i < MAX; i++){  p = M[i].next;while (p != NULL)//每个单元的后继为空不再输出{printf("%s ", p->NAME);p = p->next;}}return 0;
}

运行截图:

哈希表链地址法解决冲突相关推荐

  1. 哈希表_实现插入、删除、查找元素操作(链地址法解决冲突)

    这几天用在写代码(实际上是为了补作业)的时间明显比以前多了,在这过程中也 发现了自己由于前期的训练太少,导致很多基础的语法都不熟悉,有很长的时间都用在了debug上.很多问题写的时候记得,过后又忘了, ...

  2. 用开放地址法中的线性探查法解决冲突实现哈希表的运算

    为了更深的理解哈希算法,自己写了用开放地址法中的线性探查法解决冲突实现哈希表的运算. /*** Created by lirui on 14-8-13.* 用开放地址法中的线性探查法解决冲突实现哈希表 ...

  3. java开放地址法和链地址法解决hash冲突

    hashMap对各位小伙们来说,没有不知道的了,使用过的人想必或多或少的都了解一点hashMap的底层实现原理,总结来说就是,数组+链表,至于源码的实现,大家可参看源码,今天想说的是hashMap是怎 ...

  4. SWUST OJ 1012: 哈希表(链地址法处理冲突)

    1012: 哈希表(链地址法处理冲突) 题目描述 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法.建立链表的时候采用尾插法. 输入 第一行为哈西表的长度m: 第二 ...

  5. 使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表

    使用哈希函数:H(k)=3k MOD 11 ,并采用链地址法处理冲突. 试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表, 求等概率情况下查找成功的查找长度,并设计构造哈希表 ...

  6. 考研数据结构之查找(9.8)——练习题之使用散列函数H(k)= 3k mod 11并采用链地址法处理冲突并构造散列表及设计散列表的完整算法(C表示)

    题目 使用散列函数: H(k)= 3*k mod 11 并采用链地址法处理冲突.试对关键字序列(22, 41, 53, 46, 30, 13, 01, 67)构造散列表,求等概率情况下查找成功的平均查 ...

  7. 7-15 航空公司VIP客户查询 (25分)(没用stl,哈希链地址法实现)

    7-15 航空公司VIP客户查询 (25分) 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行记 ...

  8. 哈希表构造与处理冲突方法

    我们知道:哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双向)的头指针.如果Key一样,则在一起,如果Key不一样,则不在一起.哈希表的查询是飞快的.因为它不需要从头搜索,它利用Key的 ...

  9. 数据结构:哈希表函数构造和冲突解决方法

    哈希表 哈希函数:记录的存储位置和它的关键字之间建立一个确定的对应关系. 冲突:对不同的关键字可能得到同一哈希地址,这种现象称为冲突. 哈希函数构造方法 1.直接定址法 取关键字或关键字的某个线性函数 ...

最新文章

  1. SpringBoot第十七篇:上传文件
  2. 无法安装gem包RMagick解决办法
  3. 深度学习:dropout和BN的实现
  4. java jls8_GitHub - scmod/jls8
  5. 携程将推“3+2”工作模式:每周到岗3天,在家2天,你羡慕吗?
  6. 当过爱因斯坦助理,参加过曼哈顿计划,他还发明受欢迎的编程语言 | 人物志...
  7. android 从网络加载图片并显示
  8. Linux基础——Linux 基本指令 ls 和 cd
  9. 博客园期刊制作组工作安排
  10. Ubuntu 文件文件夹查看权限和设置权限
  11. python爬虫简历项目怎么写_爬虫项目咋写,爬取什么样的数据可以作为项目写在简历上?...
  12. 数仓建设保姆级5W字教程,离线实时一网打尽(理论+实战)
  13. python flappy bird游戏
  14. 提高团队合作的六个方法
  15. 如何压缩图片jpg大小?怎么缩小jpg大小kb?
  16. dao层通用封装_层超类型模式:封装多层系统中的通用实现
  17. 小程序系统API调用
  18. jQuery 库中的 $() 是什么
  19. ENVI实验教程(5) 实验五、遥感图像增强
  20. S7-200SMART案例分析——伺服选型(二)

热门文章

  1. css中元素横向放置,使用CSS将元素放置到右侧
  2. MySQL:账户管理
  3. 基于pynput的微信刷屏代码
  4. 关于谭浩强老先生的《C++程序设计教程》 1
  5. 程序猿,你的安全感呢?
  6. 苹果xr电池容量_2019销量最高的苹果手机,不是iPhone11,更不是iPhone8
  7. dashboard 1.8
  8. 每日一题(day5)
  9. 王垠:我和Google的故事
  10. 三维立体切块效果制作