
数据结构
文章平均质量分 89
数据结构
轻松的小希
逢山开路,遇水搭桥
展开
-
数据结构:哈希表
目录第一章 哈希表介绍第二章 哈希冲突第三章 哈希函数第四章 哈希表实现项目地址:https://gitee.com/caochenlei/data-structures第一章 哈希表介绍设计一个写字楼通讯录,存放该写字楼所有公司的通讯信息,座机号码作为 key(假设座机号码最长是 8 位),公司详情(名称、地址等)作为 value,要求添加、删除、搜索的时间复杂度要求是 O(1),实现代码如下:我们发现上述代码可以实现要求,但是空间复杂度极大,空间利用率极低,非常浪费内存空间,其实数组 c原创 2021-04-28 08:10:26 · 5590 阅读 · 51 评论 -
数据结构:符号表
目录第一章 无序符号表介绍第二章 无序符号表实现2.1、基本结构2.2、添加替换2.3、删除方法2.4、获取方法2.5、获取键集合2.6、获取值集合2.7、代码测试第三章 有序符号表实现第四章 有序符号表实现4.1、基本结构4.2、添加替换4.3、删除方法4.4、获取方法4.5、获取键集合4.6、获取值集合4.7、代码测试项目地址:https://gitee.com/caochenlei/data-structures第一章 无序符号表介绍符号表最主要的目的就是将一个键和一个值联系起来,符号表能原创 2021-04-22 15:53:42 · 1476 阅读 · 13 评论 -
数据结构:树进阶
目录第一章 并查集1.1、并查集的介绍1.2、并查集的结构1.3、并查集的实现11.4、并查集的实现21.5、并查集的实现3第二章 二叉堆2.1、二叉堆的介绍2.2、二叉堆的结构2.3、最大堆的实现2.4、最小堆的实现2.5、批量建堆实现第三章 最优二叉树3.1、哈夫曼树的介绍3.2、哈夫曼树的结构3.3、哈夫曼树的实现3.4、哈夫曼编码介绍3.5、哈夫曼编码实现第四章 单词查找树4.1、单词查找树的介绍4.2、单词查找树的结构4.3、单词查找树的实现项目地址:https://gitee.com/ca原创 2021-04-18 22:24:38 · 1496 阅读 · 50 评论 -
数据结构:图
目录第一章 图1.1、图的定义1.2、特殊的图1.3、图的结构1.4、图的分类第二章 无向图2.1、无向图的术语2.2、无向图的实现2.3、无向图的搜索2.3.1、深度优先搜索连通数量2.3.2、广度优先搜索连通数量2.4、无向图的路径2.4.1、深度优先搜索有效路径2.4.2、广度优先搜索最短路径2.5、无向环的判断第三章 有向图3.1、有向图的术语3.2、有向图的实现3.3、有向图的搜索3.3.1、深度优先搜索连通数量3.3.2、广度优先搜索连通数量3.4、有向图的路径3.4.1、深度优先搜索有效路径3原创 2021-03-31 14:43:35 · 4297 阅读 · 75 评论 -
数据结构:树基础
目录第一章 树1.1、树的定义1.2、树的术语第二章 二叉树2.1、二叉树的定义2.2、二叉树的术语2.3、二叉树的性质第三章 二叉查找树3.1、BST的定义3.2、BST的结构3.3、BST的添加3.4、BST的获取3.4.1、获取指定值3.4.2、获取最小键3.4.3、获取最大键3.4.4、获取树深度3.5、BST的删除3.5.1、删除最小结点3.5.2、删除最大结点3.5.3、删除指定结点3.6、BST的遍历3.6.1、前序遍历3.6.2、中序遍历3.6.3、后序遍历3.6.4、层序遍历3.7、BST原创 2021-03-22 15:01:55 · 10236 阅读 · 38 评论 -
线性结构:栈
目录第一章 堆栈介绍第二章 堆栈实现2.1、实现代码2.2、测试代码项目地址:https://gitee.com/caochenlei/data-structures第一章 堆栈介绍存储货物或供旅客住宿的地方,可引申为仓库、中转站 。例如:我们现在生活中的酒店,在古时候叫客栈,是供旅客休息的地方,旅客可以进客栈休息,休息完毕后就离开客栈。我们把生活中的栈的概念引入到计算机中,就是供数据休息的地方,它是一种数据结构,数据既可以进入到栈中, 又可以从栈中出去。栈(Stack)又名堆栈,它是一种基于原创 2021-03-09 13:50:14 · 3544 阅读 · 22 评论 -
线性结构:链表
目录第一章 单向链表介绍第二章 单向链表实现2.01、初始化链表的结构2.02、判断链表是否为空2.03、获取当前链表长度2.04、连接链表两个结点2.05、释放链表结点指向2.06、返回链表最后结点2.07、返回链表首个结点2.08、返回指定位置结点2.09、链表尾后添加数据2.10、链表头后添加数据2.11、指定位置添加数据2.12、删除指定位置结点2.13、删除链表首个结点2.14、删除链表最后结点2.15、顺序输出链表内容2.16、逆序输出链表内容2.17、首尾反转当前链表2.18、清空链表所有结点原创 2021-03-05 19:30:27 · 3554 阅读 · 18 评论 -
线性结构:队列
目录第一章 顺序队列介绍第二章 顺序队列实现2.1、实现代码2.2、测试代码第三章 循环队列介绍第四章 循环队列实现4.1、实现代码4.2、测试代码项目地址:https://gitee.com/caochenlei/data-structures第一章 顺序队列介绍在现实世界中存在很多队列的实例。例如,在电影院的售票窗口排队等待买票的人,就是通过队列这种数据结构组织在一起的。人们按先来后到的顺序排成一队,最先买到票的人就是最先来的人。当某人买完票,他就会从队列的最前端离开,这就相当于删除操作。而原创 2021-03-02 17:48:50 · 2409 阅读 · 14 评论 -
线性结构:数组
目录第一章 稀疏数组介绍第二章 稀疏数组实现项目地址:https://gitee.com/caochenlei/data-structures第一章 稀疏数组介绍当一个二维数组中大部分元素为0时,可以使用稀疏数组来保存该数组的信息,通过减少原数组中0的个数,以达到减小原数组的大小,具体处理方法如下:建立一个全新的二维数组,第一行存储原数组的行数、列数以及非零元素个数,其中,非零元素个数用于确定存储数组数据的行数。我们只需要循环遍历原数组,遇到非零元素将其加入到稀疏数组第二部分的存储数组数据原创 2021-02-28 14:06:04 · 2539 阅读 · 5 评论