HashTable 简述
#include <stdio.h> #define M 100
#define Hash_key = 29 template <class T>
struct HashNode
{
T data;
int key;
int isNull;
HashNode<T>* pNext; HashNode(){
pNext = NULL;
isNull = ;
}
}; template <class T>
class HashTable
{
private:
HashNode<T> m_HashNodes[M]; int getHashAddress(int key) {
return key % Hash_key;
} public:
HashTable(){
// for (i=0; i<M; i++) {
// m_HashNodes[i].isNull = 0;
// }
} bool insert(int key,T data) {
int address = this.getHashAddress(key);
if (m_HashNodes[address].isNull == ) {
m_HashNodes[address].data = data;
m_HashNodes[address].isNull == ;
}
else {
// while (m_HashNodes[address].isNull == 0 && address <M) { // 线性探测法, 开发地址法
// address++;
// }
// if (address == M) {
// return false;
// }
//
HashNode<T>* pTmpNode = m_HashNodes[address].pNext; // 链地址法
HashNode<T>* pCurNode = NULL
while (pTmpNode != NULL) {
pCurNode = pTmpNode;
pTmpNode = pTmpNode->pNext;
}
pCurNode->pNext = new HashNode<T>();
pCurNode->pNext->data = data;
pCurNode->pNext->key = key;
pCurNode->pNext->isNull = ;
}
} HashNode<T> find(int key) {
int address = this.getHashAddress(key);
HashNode<T> node = m_HashNodes[address];
if (node.key == key){
return &node.data;
}
else {
pCur = m_HashNodes[address].pNext;
while (pCur != NULL){
if (pCur->key == key) {
return pCur;
}
else {
pCur = pCur->pNext;
}
}
return NULL
}
} }
HashTable 简述的更多相关文章
- C# Hashtable 简述
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- 哈希表(Hashtable)简述
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- C#中HashTable的用法
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- [转]net中哈希表的使用 Hashtable
本文转自:http://www.cnblogs.com/gsk99/archive/2011/08/28/2155988.html 以下是PetShop中DBHelper中的使用过程: //创建哈希表 ...
- C#中HashTable的用法示例1
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- 类 Array Arraylist List Hashtable Dictionary
总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...
- 黑马程序员-hashtable
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列 ...
- C#中hashtable的赋值、取值、遍历、排序操作
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
- C# Hashtable 使用说明 以及 Hashtable和HashMap的区别
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...
随机推荐
- 多个Jdk版本(转)
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装 ...
- C++中三种new的用法
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html 作者: mt 1 new operator,也叫new表达式:new表达式比 ...
- Python 之 for循环中的lambda
第一种 f = [lambda x: x*i for i in range(4)] (如果将x换成i,调用时候就不用传参数,结果都为3) 对于上面的表达式,调用结果: >>> f ...
- 用svg制作loading动画
首先说明:由于各浏览器对svg动画事件支持不统一,此loading动画在Firefox,Opera,Chrome中均没有问题,IE和Safari中有问题,可能是不支持SIML写动画的语法, 但是用Ca ...
- Pycharm注册码(2016.2)
43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
<script type="text/javascript"> $('input:text:first').focus(); document.onkeydown = ...
- Mono登录界面记住密码的控件
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_co ...
- Product Backlog
会议时间:周四中午13:20-14:20 会议地点:寝室 讨论了如何根据用户故事来写排球的程序.如何实现单机模式的基本加分判断胜负的功能.并选出项目测试人员.然后两个人一个小组进行程序基本功能的开发. ...
- Rendering pipeline overview(读书笔记1 --- Real-Time rendering)
1. Rendering pipeline的作用就是在给定的虚拟相机.三维物体.光源.着色方程式.纹理等的条件下产生(渲染)二维图像 2. pipeline包含很多个stage,其效率由最慢的stag ...
- 标准bootstrap html 页面
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...