#include "stdafx.h"
#include <iostream>
#include <exception>
using namespace std; /*散列表查找实现
散列表如果没有冲突,查找效率就非常高的.时间复杂度是O(1);但是实际应用中,冲突是不可避免的.
那么散列表的平均查找长度取决于
1.散列函数是否均匀.
2.处理冲突的方法.
3.散列表的装填因子.a = 填入表中的记录个数 / 散列表的长度.当a越大,产生冲突的可能性就越大.
用空间来换取时间
*/
const int success = ;
const int unSuccess = ;
const int hashSize = ;
const int nullKey = -;
const int ok = ;
typedef struct
{
int *elem;
int count;
}HashTable;
int m = ; /*初始化散列表*/
int InitHashTable(HashTable *H)
{
int i ;
m = hashSize;
H->count = m;
H->elem = (int *)malloc(sizeof(int));
for(int i = ;i!=m;++i)
H->elem[i]=nullKey; //所有元素初始化
return ok;
} /*散列函数*/
int Hash(int key)
{
return key%m; //除留余数法
} /*插入关键字进散列表*/
void InsertHash(HashTable *H,int key)
{
int addr = Hash(key);
while(H->elem[addr]!=nullKey)
{
addr = (addr+)%m;
}
H->elem[addr] = key;
} /*散列表查找关键字*/
int SearchHash(HashTable H,int key,int *addr)
{
*addr = Hash(key);
while(H.elem[*addr]!=key)
{
*addr=(*addr+)%m;
if(H.elem[*addr] == nullKey|| *addr ==Hash(key))
{
return unSuccess;
}
}
return success;
}
int _tmain(int argc, _TCHAR* argv[])
{ return ;
}

最新文章

  1. lua学习例子
  2. 强大的Spring缓存技术(上)
  3. VS报错:The build tools for v140 (Platform Toolset = &#39;v140&#39;) cannot be found
  4. Linux命令:ps / top
  5. 在Ubuntu Server下搭建LAMP环境学习记录
  6. Codeforces 559A 第六周 O题
  7. JNI读取assets资源文件
  8. LeetCode题解——Longest Substring Without Repeating Characters
  9. Java网络编程(UDP协议:发送端)
  10. tl;drLegal ——开源软件license的搜索引擎
  11. java学习一目了然&mdash;&mdash;IO
  12. NPM 简单实用说明
  13. C#之自定义特性
  14. PS图层混合算法之三(滤色, 叠加, 柔光, 强光)
  15. bzoj4067 [Ctsc2015]gender
  16. Python实现FTP文件的上传和下载
  17. Dapper的应用
  18. Spring Boot 2 - 初识与新工程的创建
  19. java特殊字符分隔符
  20. 干货分享:vue2.0做移动端开发用到的相关插件和经验总结(2)

热门文章

  1. 数据结构与算法之枚举(穷举)法 C++实现
  2. Asp.Net中判断是否登录,及是否有权限?
  3. winform学习
  4. vc2013使用经验
  5. Android笔记之使用ImageView加载网络图片以及保存图片到本地并更新图库
  6. 设置ubuntu默认输入python进入python3
  7. POJ - 2031 Building a Space Station 【PRIME】
  8. Algorithm: bit manipulation
  9. Quartz的misfire理解
  10. EASYARM-IMX283 nfs启动内核和根文件系统