在头文件"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语言库函数的哈希表使用方法相关推荐

  1. 数据结构源码笔记(C语言):哈希表的相关运算算法

    //实现哈希表的相关运算算法 #include<stdio.h> #include<malloc.h> #include<string.h>#define MaxS ...

  2. 哈希(散列):C语言实现 静态哈希表

    哈希(散列)的概念,我们可以在上一篇文章中看到: https://blog.csdn.net/mowen_mowen/article/details/82943192 在这里,我们将使用C代码来实现一 ...

  3. 在Javascript中实现伪哈希表

    了解数据结构的人应该都听说过哈希表这种数据结构,它是一种典型的利用键值对存储并检索数据的一种非线性结构,又称散列表或杂凑法.在一般的线性表结构中,数据的相对位置是随机的,即数据和用于检索的关键字之间不 ...

  4. 源程序的相似性分析 —— 基于Python实现哈希表

    一.问题描述 对于两个C++语言的源程序代码,用哈希表的方法分别统计两个程序中使用C++语言关键字的情况,并最终按定量的计算结果,得出两份程序的相似性. 二.需求分析 建立C++语言关键字的哈希表,统 ...

  5. 【ZZ】详解哈希表的查找

    详解哈希表的查找 https://mp.weixin.qq.com/s/j2j9gS62L-mmOH4p89OTKQ 详解哈希表的查找 2018-03-01 算法与数据结构 来自:静默虚空 http: ...

  6. 牛客网Java刷题知识点之数组、链表、哈希表、 红黑二叉树

    不多说,直接上干货! 首先来说一个非常形象的例子,来说明下数组和链表. 上体育课的时候,老师说:你们站一队,每个人记住自己是第几个,我喊到几,那个人就举手,这就是数组. 老师说,你们每个人记住自己前面 ...

  7. 查找三 哈希表的查找

    要点 哈希表和哈希函数 在记录的存储位置和它的关键字之间是建立一个确定的对应关系(映射函数),使每个关键字和一个存储位置能唯一对应.这个映射函数称为哈希函数,根据这个原则建立的表称为哈希表(Hash ...

  8. 哈希表(闭散列、拉链法--哈希桶)

    哈希表,也称散列表,是一种通过key值来直接访问在内存中的存储的数据结构.它通过一个关键值的函数(被称为散列函数)将所需的数据映射到表中的位置来访问数据. 关于哈希表,主要为以下几个方面: 一.哈希表 ...

  9. 程序员的进阶课-架构师之路(16)-散列表(哈希表)

    前言 当我们在编程过程中,往往需要对线性表进行查找操作.在顺序表中查找时,需要从表头开始,依次遍历比较a[i]与key的值是否相等,直到相等才返回索引i:在有序表中查找时,我们经常使用的是二分查找,通 ...

  10. 多数元素(哈希表和投票法)

    力扣算法面试题汇总 问题描述:给定一个大小为 n 的数组,找到其中的多数元素.多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 例: ...

最新文章

  1. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验
  2. Knn算法(约会问题应用)
  3. leetcode 236. 二叉树的最近公共祖先 递归解法 c语言
  4. JavaScript中的原型,对split方法的重写
  5. 博后招募 | 西湖大学工学院蓝振忠深度学习实验室招募博士后
  6. VTK:相互作用之MouseEvents
  7. CvBlobDetector 新目标检测算法简析
  8. 【接口文档】Django restful framework中自动生成API文档
  9. 【转】解决XMLHTTP获取网页中文乱码问题
  10. 结对项目:黄金点游戏(何珠赵艳)
  11. SSAS事实表和维度表数据类型必须一致
  12. hbuildx打包成apk_基于HBuilder将H5站点打包成app
  13. idea的pom文件变灰色
  14. ps和sketch常用快捷键总结
  15. 华为v2服务器系统安装系统,华为服务器RH 2288H v2安装系统
  16. LVDS RX的底层逻辑
  17. 解决Windows 由于路径过长而无法删除文件的问题
  18. ruoyi-vue前端启动
  19. 【Andrioid】(转自stormzhang)Android学习之路
  20. xpath常见错误:Opening and ending tag mismatch: meta line 4 的处理方法【Python爬虫】

热门文章

  1. leetcode每日一练(第一天)
  2. php四则运算器,php实现简单四则运算器
  3. Qt之标准对话框(文件对话框)
  4. 仿英雄联盟网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品下载 DW游戏介绍网页作业代码下载
  5. 有可直接运营的IPTV/OTT系统ma?
  6. submit常用快捷键
  7. 2021时间序列-对比学习必读的四篇论文
  8. 最详细的手机资料名词术语解释
  9. 在VBA中调用Windows API的方法
  10. 安全方面的文章+VC知识库