C语言库函数的哈希表使用方法
在头文件"uthash.h"中,已经有了哈希表的库函数,只需学习其用法即可。
定义
typedef struct HashTable
{int key;int value;UT_hash_handle hh;
} MyHash;MyHash * myhs = NULL;
注1:UT_hash_handle必不可少
注2:myhs在使用时一定要初始化为空
查找
MyHash * find(int key1)
{MyHash * tmp = NULL;HASH_FIND_INT(myhs, &key1, tmp);return tmp;
}
注1:HASH_FIND_INT()中,参数key需要取地址
注2:返回值为结构体指针,是为了方便使用时拿到目标键值对应的实值
插入
void insert(int key1, int value1)
{MyHash * tmp1 = find(key1);if (NULL == tmp1){MyHash * tmp2 = malloc(sizeof(MyHash));tmp2->key = key1;tmp2->value = value1;HASH_ADD_INT(myhs, key, tmp2);}else{tmp1->value = value1;}
}
注1:ADD函数中参数key不需要取地址
注2:ADD函数中参数key应输入key而不是key1
当key为char,value为int型时,代码待补充
参考:C语言哈希表用法_csuzhucong的博客-CSDN博客_hash_find_int
C语言库函数的哈希表使用方法相关推荐
- 数据结构源码笔记(C语言):哈希表的相关运算算法
//实现哈希表的相关运算算法 #include<stdio.h> #include<malloc.h> #include<string.h>#define MaxS ...
- 哈希(散列):C语言实现 静态哈希表
哈希(散列)的概念,我们可以在上一篇文章中看到: https://blog.csdn.net/mowen_mowen/article/details/82943192 在这里,我们将使用C代码来实现一 ...
- 在Javascript中实现伪哈希表
了解数据结构的人应该都听说过哈希表这种数据结构,它是一种典型的利用键值对存储并检索数据的一种非线性结构,又称散列表或杂凑法.在一般的线性表结构中,数据的相对位置是随机的,即数据和用于检索的关键字之间不 ...
- 源程序的相似性分析 —— 基于Python实现哈希表
一.问题描述 对于两个C++语言的源程序代码,用哈希表的方法分别统计两个程序中使用C++语言关键字的情况,并最终按定量的计算结果,得出两份程序的相似性. 二.需求分析 建立C++语言关键字的哈希表,统 ...
- 【ZZ】详解哈希表的查找
详解哈希表的查找 https://mp.weixin.qq.com/s/j2j9gS62L-mmOH4p89OTKQ 详解哈希表的查找 2018-03-01 算法与数据结构 来自:静默虚空 http: ...
- 牛客网Java刷题知识点之数组、链表、哈希表、 红黑二叉树
不多说,直接上干货! 首先来说一个非常形象的例子,来说明下数组和链表. 上体育课的时候,老师说:你们站一队,每个人记住自己是第几个,我喊到几,那个人就举手,这就是数组. 老师说,你们每个人记住自己前面 ...
- 查找三 哈希表的查找
要点 哈希表和哈希函数 在记录的存储位置和它的关键字之间是建立一个确定的对应关系(映射函数),使每个关键字和一个存储位置能唯一对应.这个映射函数称为哈希函数,根据这个原则建立的表称为哈希表(Hash ...
- 哈希表(闭散列、拉链法--哈希桶)
哈希表,也称散列表,是一种通过key值来直接访问在内存中的存储的数据结构.它通过一个关键值的函数(被称为散列函数)将所需的数据映射到表中的位置来访问数据. 关于哈希表,主要为以下几个方面: 一.哈希表 ...
- 程序员的进阶课-架构师之路(16)-散列表(哈希表)
前言 当我们在编程过程中,往往需要对线性表进行查找操作.在顺序表中查找时,需要从表头开始,依次遍历比较a[i]与key的值是否相等,直到相等才返回索引i:在有序表中查找时,我们经常使用的是二分查找,通 ...
- 多数元素(哈希表和投票法)
力扣算法面试题汇总 问题描述:给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 例: ...
最新文章
- stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验
- Knn算法(约会问题应用)
- leetcode 236. 二叉树的最近公共祖先 递归解法 c语言
- JavaScript中的原型,对split方法的重写
- 博后招募 | 西湖大学工学院蓝振忠深度学习实验室招募博士后
- VTK:相互作用之MouseEvents
- CvBlobDetector 新目标检测算法简析
- 【接口文档】Django restful framework中自动生成API文档
- 【转】解决XMLHTTP获取网页中文乱码问题
- 结对项目:黄金点游戏(何珠赵艳)
- SSAS事实表和维度表数据类型必须一致
- hbuildx打包成apk_基于HBuilder将H5站点打包成app
- idea的pom文件变灰色
- ps和sketch常用快捷键总结
- 华为v2服务器系统安装系统,华为服务器RH 2288H v2安装系统
- LVDS RX的底层逻辑
- 解决Windows 由于路径过长而无法删除文件的问题
- ruoyi-vue前端启动
- 【Andrioid】(转自stormzhang)Android学习之路
- xpath常见错误:Opening and ending tag mismatch: meta line 4 的处理方法【Python爬虫】