数据结构 查找 散列表(Hash)(1)
来源:互联网 发布:无印良品文具淘宝 编辑:程序博客网 时间:2024/05/28 05:13
1.代码如下
#include <bits/stdc++.h>#define MAXSIZE 0x64using namespace std;typedef struct node{ int key; int index;//管控下标 struct node* next;} *Hnode;typedef struct hnode{ Hnode data[MAXSIZE]; int length;} HasTable;void createHas(HasTable &ht);void printHsh(HasTable ht);int searchHas(HasTable ht, int key);int main() { HasTable ht; cout << "请输入散列表的长度:\n"; cin >> ht.length; cout << "- - - - - - - - -1.散列表构造- - - - - - - - -\n"; createHas(ht); cout << "散列表构造完成...\n"; cout << "\n- - - - - - - - -2.打印散列表- - - - - - - - -\n"; printHsh(ht); cout << "\n- - - - - - - - -3.散列表查找- - - - - - - - -\n"; int key; cout << "请输入你要查找的数:\n"; cin >> key; int index = searchHas(ht, key); if(index == -1) { cout << "查找失败!\n" << "序列中不存在此数..." << endl; } return 0;}void createHas(HasTable &ht) { cout << "链表数组头节点初始化...\n"; for(int i = 0; i <= ht.length; i++) { ht.data[i] = new node; ht.data[i]->next = NULL; } HasTable h0 = ht; h0.length = ht.length; cout << "请输入长度为" << h0.length << "的序列元素:\n"; for(int i = 0; i < h0.length; i++) { int key; cin >> key; int index = key % (h0.length + 1); for(int j = 0; j <= h0.length; j++) { if(index == j) { Hnode p = new node; p->key = key; h0.data[j]->key = p->key; h0.data[j]->index = i; p->next = h0.data[j]->next; h0.data[j]->next = p; h0.data[j] = p; j = (h0.length + 1); } } }}void printHsh(HasTable ht) { for(int i = 0; i <= ht.length; i++) { Hnode h0 = ht.data[i]; cout << "#"; while(h0->next) { cout << "->" << h0->key; h0 = h0->next; } cout << endl; }}int searchHas(HasTable ht, int key) { int index = key % (ht.length + 1); for(int i = 0; i <= ht.length; i++) { if(index == i) { if(ht.data[i]->next == NULL) { return -1; } Hnode h0 = ht.data[i]; while(h0->next) { if(key == h0->key) { cout << "查找成功!\n" << "该关键字在第" << index << "块,处于原序列的下标为:" << h0->index << ",地址为:" << h0 << endl; return h0->index; } h0 = h0->next; } return -1; } }}
2.效果如下
阅读全文
0 0
- 数据结构 查找 散列表(Hash)(1)
- 数据结构 Hash 散列表详解
- 数据结构之---散列表(hash table)
- 转贴:数据结构:Hash查找
- 数据结构--Hash查找
- 数据结构之hash查找
- (C#版)数据结构:Hash查找
- 数据结构_8:查找:Hash:C++
- 数据结构_____散列表查找(哈希表)
- 数据结构之哈希表(散列表查找)
- 数据结构面试之十三——Hash表(散列表)
- C 基础数据结构---散列表(Hash) ADT
- 基本数据结构——散列表(hash表)
- 数据结构—散列表(Hash table,也叫哈希表)
- 数据结构与算法____散列表(hash table)
- 数据结构Note1:Hash 表(散列表/哈希表)
- Hash查找,散列查找
- 数据结构_8:查找:Hash:C语言
- 执行远程调试jar命令
- 共享baidu.com,sohu.com,360.cn,qq.com,sina.com等二级域名
- [NOI2010]超级钢琴(可持续化线段树)
- C 语言大量重复使用 if else 时,大概率执行的执行体是放在 if 中还是 else 中对执行效率的影响
- Win32 API消息函数:PostMessage
- 数据结构 查找 散列表(Hash)(1)
- (浅谈)Java反射机制的使用
- leetCode-Remove Duplicates from Sorted Array II
- 使用 CSS 去掉 iPhone 网页上按钮的超大圆角以及文本框圆角默认样式
- EOJ 2536 求和
- Commands out of sync; you can't run this command now
- 参考
- java设计模式----创建型
- python学习三--列表