
C语言机制
Tracy喵喵
本博主主要从事航空航天、地面站基带、地面站建设、星载通信机、气象接收机、跟踪接收机、弹载数据链等产品研发
QQ:850356887
展开
-
C语言基础算法——数组元素的查找、删除和添加
从这篇博客开始,我们慢慢要进阶了,小白们,如果觉得我写的还不错,麻烦你注册常来,顺便给我点个赞哈~让更多的人看到此类干货。——————————————————–华丽分割线————————————————————今天一样是对数组元素进行相应操作,不过是稍微复杂点的操作,但是在实际生活中又是比较基础的应用。我给思路给程序,发散思维的工作你们脑洞大点,充分发挥自己的想象力并去实施。————————...原创 2020-01-03 14:12:12 · 16062 阅读 · 2 评论 -
C语言实现一个简易的Hash table(七)
上一章我们讲了如何根据需要动态设置hash表的大小,在第四章中,我们使用了双重哈希来解决hash表的碰撞,其实解决方法有很多,这一章我们来介绍下其他方法。本章将介绍两种解决hash表碰撞的方法:拉链法 开放地址法拉链法使用拉链法,每一个bucket都会包含一个链接表,当发生碰撞时,就会将该记录插入在该位置的链接表后面,步骤如下: 插入时:通过hash函数获取到要插入的位置,如...原创 2019-12-30 15:10:49 · 144 阅读 · 0 评论 -
C语言实现一个简易的Hash table(六)
上一章中,我们实现了Hash表中的插入、搜索和删除接口,我们在初始化hash表时固定了大小为53,为了方便扩展,本章将介绍如何修改hash表的大小。设置Hash表大小现在,我们的hash表是固定大小(53)的,当插入越来越多数据时,我们的hash表就会被插满,这个问题有两个原因:哈希表的性能随着高冲突率而降低 我们的'hash表'只能存储固定数量的记录,如果我们存储更多,将无法插入数...原创 2019-12-30 15:10:12 · 166 阅读 · 0 评论 -
C语言实现一个简易的Hash table(五)
上一章中,我们使用了双重Hash的技术来处理碰撞,并用了C语言实现,本章我们将实现Hash表中的插入、搜索和删除接口。实现接口我们的hash函数将会实现如下的接口:// hash_table.hvoid ht_insert(ht_hash_table* ht, const char* key, const char* value);char* ht_search(ht_ha...原创 2019-12-30 15:09:27 · 141 阅读 · 0 评论 -
C语言实现一个简易的Hash table(四)
上一章我们解释了Hash table中最重要的hash函数,并用伪代码和C语言实现了一个我们自己的hash函数,hash函数中碰撞是无法避免的,当发生碰撞时我们改如何有效的处理呢?这章我们就来讲解下。处理碰撞hash函数中将无限大的输入映射到有限的输出中,当不同的输入映射到相同的输出时,就会发生碰撞,每个的hash表都会采用不同的方法来处理碰撞。我们的哈希表将使用一种称为开放地址的双重...原创 2019-12-30 15:08:27 · 187 阅读 · 0 评论 -
C语言实现一个简易的Hash table(三)
上一章,我们讲了hash表的数据结构,并简单实现了hash表的初始化与删除操作,这一章我们会讲解Hash函数和实现算法,并手动实现一个Hash函数。Hash函数本教程中我们实现的Hash函数将会实现如下操作:输入一个字符串,然后返回一个0到m(Hash表的大小)的数字 为一组平常的输入返回均匀的bucket索引。如果Hash函数不是均匀分布的,就会将多个记录插入到相同的bucket中...原创 2019-12-30 15:07:37 · 154 阅读 · 0 评论 -
C语言实现一个简易的Hash table(二)
上一章,简单介绍了Hash Table,并提出了本教程中要实现的几个Hash Table的方法,有search(a, k)、insert(a, k, v)和delete(a, k),本章将介绍Hash table使用的数据结构。Hash table数据结构hash表中存储的每一项key-value的数据结构:// hash_table.htypedef struct { ...原创 2019-12-30 15:06:36 · 166 阅读 · 0 评论 -
C中的malloc、calloc和realloc
1. malloc原型:extern void *malloc(unsigned int num_bytes);头文件:Visual C++6.0中可以用malloc.h或者stdlib.h功能:分配长度为num_bytes字节的内存块返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。...原创 2019-12-30 15:05:24 · 170 阅读 · 0 评论 -
C语言实现一个简易的Hash table(一)
说明Hash table翻译过来就是Hash表,是一种提供了类似于关联数组的数据结构,可以通过key执行搜索、插入和删除操作。Hash表由一些列桶(buckets)组成,而每一个bucket都是由key-value的形式组成。存储时都是以key-value存储的,因为当要定位一个value时,需要把key传给一个散列函数(hash函数),这个函数返回一个数(索引),代表查找的value位于哪一...原创 2019-12-30 15:03:13 · 534 阅读 · 0 评论