《数据结构学习与实验指导》5-1:整数关键字的散列映射
来源:互联网 发布:ae圆点矩阵特效是哪个 编辑:程序博客网 时间:2024/06/02 04:59
实验内容:给定一系列整型关键字和素数PP,用除留余数法定义的散列函数将关键字映射到长度为PP的散列表中。用线性探测法解决冲突。
输入格式:输入第一行首先给出两个正整数N(N≤1000)和P(≥N的最小素数),分别为待插入的关键字总数以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。
输出格式:在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。
测试用例:
24 15 61 88 4 0 1 3 4 5
24 39 61 15 4 0 1 2 5 5
24 39 61 15 39 4 0 1 2 0
#include <stdio.h>#include <stdlib.h>typedef struct Node { int value; int choosed;} *PNode;typedef struct HashTable { int size; PNode arr;} *PHashTable;int N, P;int first = 1;PHashTable init();int hash(int key);int insert(PHashTable table, int key);int main() { scanf("%d %d", &N, &P); PHashTable table = init(); int i, key; for (i = 0; i < N; i++) { scanf("%d", &key); int index = insert(table, key); if (first) { printf("%d", index); first = 0; } else { printf(" %d", index); } } return 0;} PHashTable init() { PHashTable table = (PHashTable) malloc(sizeof(struct HashTable)); table->size = P; table->arr = (PNode) malloc(sizeof(struct Node) * P); int i; for (i = 0; i < P; i++) { table->arr[i].choosed = 0; } return table;}int hash(int key) { return key % P;}int insert(PHashTable table, int key) { int index = hash(key); while (table->arr[index].choosed && table->arr[index].value != key) { index++; index = index % table->size; } if (! table->arr[index].choosed) { table->arr[index].value = key; table->arr[index].choosed = 1; } return index;}
阅读全文
0 0
- 《数据结构学习与实验指导》5-1:整数关键字的散列映射
- 《数据结构学习与实验指导》5-2:字符串关键字的散列映射
- <数据结构学习与实验指导>2-3整数分解为若干项之和
- 《数据结构学习与实验指导》2-3:整数分解为若干项之和
- 《数据结构学习与实验指导》4-5:家谱处理
- 《数据结构学习与实验指导》5-3:电话聊天狂人
- 《数据结构学习与实验指导》5-8:迷你搜索引擎
- <数据结构学习与实验指导>2-1:简单计算器
- 《数据结构学习与实验指导》2-1:简单计算器
- 《数据结构学习与实验指导》3-1:一元多项式求导
- 《数据结构学习与实验指导》4-1:还原二叉树
- 《数据结构学习与实验指导》5-5:QQ账号的申请与登录
- <数据结构学习与实验指导>2-5求集合数据的均方差
- 《数据结构学习与实验指导》2-5:求集合数据的均方差
- 《数据结构学习与实验指导》3-5:求链式线性表的倒数第K项
- 《数据结构学习与实验指导》5-4:基于词频的文件相似度
- PTA-数据结构 5-42 整型关键字的散列映射 (25分)
- 数据结构实验指导1
- spring boot +springMVC +mybatis整合踩过的坑
- hadoop 2.x安装:安装结果测试
- Linux 应用开发
- 1018· 函数的使用4:求最大公约数(gcd)
- libjpeg-turbo(1)
- 《数据结构学习与实验指导》5-1:整数关键字的散列映射
- 使用Nexus搭建私服
- 原生实现拖拽进行css定位的小工具
- 对象创建模式之模块模式(Module Pattern)
- 整体二分,区间第K小(CRB and Queries,HDU 5412)
- WEB安全之XSS和CRSF攻击
- bzoj2463(博弈)
- linux下安装MYSQL5.7一步完成
- usb驱动之设备插拔检测