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的键值对,其 ...
随机推荐
- LeetCode 396. Rotate Function
Given an array of integers A and let n to be its length. Assume Bk to be an array obtained by rotati ...
- 关于Oracle出现listener refused the connection with the ORA-12505错误,解决方案
出现listener refused the connection with the ORA-12505错误,解决方案: 1.首先重启一下电脑,释放被占用的1521端口 2.重启后打开Oracle D ...
- .this语句指的是什么
This通常指的是当前对象的引用
- Java 2D API - 2. Graphics 入门
Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...
- python3+ 模块学习 之 subprocess
subprocess 模块方法: call() check_call() check_output() 以上三个方法用于创建一个子进程,父进程等待子进程结束.若shell = true, 则shell ...
- android windows
获取当前设备的分辨率 DisplayMetrics dm=new DisplayMetrics(); //新建一个分辨对象 WindowManager wm=this.getWindowManager ...
- V8 data struct
参考: [1]. 使用 Google V8 引擎开发可定制的应用程序: http://www.ibm.com/developerworks/cn/opensource/os-cn-v8engine/ ...
- Valgrind 发现程序的内存问题
参考 : [1]. 应用 Valgrind 发现 Linux 程序的内存问题. http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/ [2 ...
- pom.xml详解
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和li ...
- 学习 Linux,101: Linux 命令行
概述 本教程将简要介绍 bash shell 的一些主要特性,涵盖以下主题: 使用命令行与 shell 和命令交互 使用有效的命令和命令序列 定义.修改.引用和导出环境变量 访问命令历史和编辑工具 调 ...