C++简单哈希表
来源:互联网 发布:手机触摸屏测试软件 编辑:程序博客网 时间:2024/06/05 03:12
简单的哈希表。。一个数组。。装着每一个链表的首地址。
需要Node**mList
mList=new Node*[size]//这里没初始化
for(int i=0;i<size;i++) mList[i]=nullptr;
还有一个生成key的函数return (n^0xdeadbeef ) %size
下面是完整马
HPP
#include <iostream>using namespace std;template<typename T>struct Hash_List{int data;Hash_List*pNext;Hash_List(int n){this->data = n;this->pNext = nullptr;}};template <typename T>class Hash_Table{public:Hash_Table();~Hash_Table();int Hash_Func(int n);void Hash_Insert(int n);int Hash_Find(int n);private:int Size;Hash_List<T>** hsTable;};template<typename T> Hash_Table<T>::Hash_Table(){Size = 5555555;hsTable = new Hash_List<T>*[Size];for (int i = 0; i < Size; i++)hsTable[i] = nullptr;}template<typename T>Hash_Table<T>::~Hash_Table(){for (int i = 0; i < Size; i++){Hash_List<T>*p = hsTable[i];while (p != nullptr){Hash_List<T>*d = p;p = p->pNext;delete d;d = nullptr;}}}template<typename T>int Hash_Table<T>::Hash_Func(int n){return (n ^ 0xdeadbeef) % Size;}template<typename T>int Hash_Table<T>::Hash_Find(int n){int key = Hash_Func(n);for(Hash_List<T>*pHead = hsTable[key];pHead!=nullptr;pHead=pHead->pNext){if (pHead->data == n){cout << "Find\n";return 1;}}cout << "No\n";return 0;}template<typename T>void Hash_Table<T>::Hash_Insert(int n){int key=Hash_Func(n);for (Hash_List<T>*p = hsTable[key]; p != nullptr; p = p->pNext){if (p->data==n){return;}}Hash_List<T>*pNew = new Hash_List<T>(n);if (pNew==nullptr){return;}pNew->pNext = hsTable[key];hsTable[key] = pNew;}
CPP
#include "h.hpp"int main(){Hash_Table<int>t;t.Hash_Insert(36);t.Hash_Insert(362);t.Hash_Insert(33246);t.Hash_Insert(465);t.Hash_Insert(316);t.Hash_Insert(6213);t.Hash_Insert(65);int g=t.Hash_Find(362);}嗯。。测了下。。能跑。
0 0
- C++/CLI 简单介绍
- [C#] 简单的木马程序
- c的简单例子
- [C#]简单即时通讯
- c语言简单应用
- C语言简单认识
- 简单c程序
- Pro * C 简单例子
- C程序:看似简单
- [C#]简单数据采集
- 简单c学习
- C简单总结
- Objective C简单介绍
- 简单c程序
- C简单病毒程序
- C#ArrayList简单应用
- linux 简单C编写
- C简单病毒程序
- JVM介绍
- wc2017心路历程
- Mysql注释
- JavaSe总结-27- 反射 & 设计模式 & JDK5、7、8新特性
- 杭电1715 ( 大菲波数 ) java
- C++简单哈希表
- 《程序是怎么跑起来的》第一章--对程序员来说CPU是什么--读书笔记
- 448. Find All Numbers Disappeared in an Array
- Uva 10474 Where is the Marble?(排序与检索)
- MySql数据库的查询、删除、增加、修改语句
- POJ 3414 基础搜索 BFS 六
- choice 命令
- 使用 Eclipse 中的 TCP/IP Monitor转发(三)
- java wsimport 生成Webservice客户端401认证