C语言哈希表原理与实现
📚 共计 30 章节
01
哈希表初探
什么是哈希表 · 核心思想 · vs 数组/链表 · 时间复杂度分析
基础
概念
02
哈希函数设计
哈希函数作用 · 除留余数法 · 乘法哈希 · MD5/SHA简介 · 设计原则
函数
算法
03
哈希冲突与解决
冲突概念 · 开放地址法(线性/二次/双重) · 链地址法 · 再哈希法
冲突
核心
04
链地址法实现(上)
结构体定义 · 节点设计 · 初始化 · 插入操作
实现
C语言
05
链地址法实现(下)
查找 · 删除 · 销毁 · 遍历与打印
实现
完整
06
开放地址法实现(上)
线性探测原理 · 插入 · 查找
开放地址
线性探测
07
开放地址法实现(下)
惰性删除 · 二次探测 · 双重哈希
进阶
探测
08
哈希表的扩容与缩容
负载因子 · 扩容/缩容时机 · rehash · 渐进式rehash
动态
性能
09
哈希表的性能分析
理论复杂度 · 实际测试 · 冲突策略对比 · 缓存友好性
分析
优化
10
字符串哈希
需求 · BKDR/DJB/FNV · 碰撞问题
字符串
哈希
11
哈希表与键值存储
键值对概念 · 底层存储 · 简单内存数据库
存储
数据库
12
哈希表在缓存系统中的应用
LRU原理 · 哈希表+双向链表 · 实现LRU Cache
缓存
LRU
13
哈希表在编译器中的应用
符号表 · C语言符号表 · 作用域与哈希表
编译器
符号表
14
哈希表在数据库索引中的应用
哈希索引 vs B+树 · MySQL哈希索引 · 自适应哈希
数据库
索引
15
哈希表在密码学中的应用
密码哈希 · 加盐 · SHA-256与区块链
密码学
安全
16
哈希表与布隆过滤器
布隆过滤器原理 · 哈希函数作用 · 实现
过滤器
概率
17
哈希表与一致性哈希
分布式哈希 · 一致性哈希 · 虚拟节点 · Redis集群
分布式
集群
18
C语言哈希表库的设计
接口设计 · 头文件 · API文档 · 错误处理
设计
工程
19
哈希表的线程安全
线程安全问题 · 互斥锁 · 读写锁 · 无锁哈希表
并发
安全
20
哈希表的内存管理
内存池 · 节点复用 · 碎片控制 · valgrind检测
内存
优化
21
哈希表的调试与测试
单元测试 · 边界条件 · 性能基准 · 内存泄漏
测试
调试
22
哈希表的优化技巧
预分配 · 哈希函数选择 · 冲突优化 · 缓存行对齐
优化
性能
23
哈希表在Redis中的应用
Redis字典 · 渐进式rehash · 过期策略
Redis
实战
24
哈希表在Memcached中的应用
Memcached架构 · 核心数据结构 · LRU协同
Memcached
缓存
25
哈希表在Nginx中的应用
Nginx哈希模块 · 静态/动态哈希 · 配置解析
Nginx
服务器
26
哈希表在Python字典中的应用
Python dict原理 · 哈希种子 · 碰撞攻击防护
Python
dict
27
哈希表在Java HashMap中的应用
Java HashMap · 红黑树优化 · 扩容 · 并发问题
Java
HashMap
28
哈希表在Go语言map中的应用
Go map实现 · bucket设计 · 扩容 · 并发安全
Go
map
29
哈希表的常见陷阱与避坑指南
哈希函数质量 · 负载因子 · 删除操作 · 线程安全
避坑
经验
30
哈希表项目实战
完整哈希表库 · 测试用例 · 性能调优 · 文档总结
项目
综合