当前位置 博文首页 > 英雄哪里出来:《画解数据结构》三张动图,画解哈希

    英雄哪里出来:《画解数据结构》三张动图,画解哈希

    作者:[db:作者] 时间:2021-09-03 09:11

    本文已收录于专栏
    🌳《画解数据结构》🌳

    零、前言

    ??「 数据结构 」「 算法 」 是密不可分的,两者往往是「 相辅相成 」的存在,所以,在学习 「 数据结构 」 的过程中,不免会遇到各种「 算法 」
    ??数据结构 常用的操作一般为:「 增 」「 删 」「 改 」「 查 」。基本上所有的数据结构都是围绕这几个操作进行展开的。
    ??那么这篇文章,作者将用 「 三张动图 」 来阐述一种 「 均摊 O(1) 」 的数据结构

    「 哈希表 」

    🙉饭不食,水不饮,题必须刷🙉

    C语言免费动漫教程,和我一起打卡!
    🌞《光天化日学C语言》🌞

    LeetCode 太难?先看简单题!
    🧡《C语言入门100例》🧡

    数据结构难?不存在的!
    🌳《画解数据结构》🌳

    闭关刷 LeetCode,剑指大厂Offer!
    🌌《LeetCode 刷题指引》🌌

    LeetCode 太简单?算法学起来!
    💜《夜深人静写算法》💜

    ?? 哈希表常用的方法是 开放定址法 和 链地址法:

    开放定址法

    链地址法

    ??看不懂没有关系,我会把它拆开来一个一个讲,首先来看一下今天要学习的内容目录。

    文章目录

    • 零、前言
    • 一、哈希表的概念
      • 1、查找算法
      • 2、哈希表
      • 2、哈希数组
      • 3、关键字
      • 4、哈希函数
      • 5、哈希冲突
      • 6、哈希地址
    • 二、常用哈希函数
      • 1、直接定址法
      • 2、平方取中法
      • 3、折叠法
      • 4、除留余数法
      • 5、位与法
    • 三、常见哈希冲突解决方案
      • 1、开放定址法
        • 1)原理讲解
        • 2)动画演示
      • 2、再散列函数法
        • 1)原理讲解
        • 2)动画演示
      • 3、链地址法
        • 1)原理讲解
        • 2)动画演示
      • 4、公共溢出区法
        • 1)原理讲解
        • 2)动画演示
    • 四、哈希表的实现
      • 1、数据结构定义
      • 2、哈希表初始化
      • 3、哈希函数计算
      • 4、哈希表查找
      • 5、哈希表插入
      • 6、哈希表删除
      • 7、哈希表完整实现
    • 五、哈希表的入门
      • 1、哈希偏移
      • 2、字符哈希
      • 3、整数哈希
    • 六、哈希表的进阶
      • 1、双指针
      • 2、等式转换
      • 3、O(1) 数据结构的构造
    cs