
数据结构
文章平均质量分 97
虚拟笔记使
这个作者很懒,什么都没留下…
展开
-
【数据结构】哈希表实现
在实现哈希表之前,我们先来学习一下什么是哈希表。在传统的数据结构中,例如数组,链表和二叉平衡树等数据结构,这些数据结构的元素关键码与其存储位置之间没有对应的关系,因此在这些数据结构中进行查找的时候,必须要经过关键码的多次比较来实现,使得顺序的数据结构的查找时间复杂度为O(n),平衡树的查找时间复杂度为O(logn),它们的搜索效率都取决于比较的次数。那么我们能不能设计出一种数据结构,不需要通过关键码的比较就可以直接定位到我们需要搜索的元素呢?就这样哈希表诞生了。原创 2024-11-28 21:59:08 · 1068 阅读 · 0 评论 -
【数据结构】红黑树实现详解
红黑树是一棵二叉搜索树,它的结点不是黑的就是红的,其中它有一个非常重要的通过对任何一条从根到叶子的路径上各个结点的着色控制,保证了红黑树没有一条路径会比最短路径长出两倍,达到接近平衡的特点。看到这句话,可能你还云里雾里的,但是不要怕,简单的来说,红黑树的特点就是:找出树中最短的路径和最长的路径,其中这条最长路径的长度不会大于最短路径长度的两倍。如下图所示:在这棵红黑树中,最短的路径是最左边的那条,长度为3,最长的路径是最右边的那条,长度为4,即4 < 2*3,最长的路径不会大于最短路径的两倍。原创 2024-06-17 19:15:39 · 956 阅读 · 0 评论 -
【数据结构】AVLTree实现详解
在二叉搜索树的博客中,我们提到了,当插入的数据有序或者接近有序的时候,二叉搜索树会退化成单支树,导致其效率变低,所以为了解决这种情况,于是我们提出了AVLTree,即二叉平衡搜索树。如下图就是一棵二叉搜索树退化成的单支树。那么AVLTree又是如何实现使二叉树搜索树不会退化成单支树的呢,它又是如何保证效率的呢?因为AVLTree严格的要求左右子树的高度差不能大于1,且每一棵子树也一样。如下图所示。原创 2024-06-08 12:45:11 · 1571 阅读 · 0 评论 -
【C++】二叉搜索树
这篇文章讲解了二叉搜索树的底层原理以及实现原创 2024-06-01 12:45:38 · 1310 阅读 · 0 评论 -
【C语言】堆的实现(建堆、堆的基本操作、堆排序、TOK问题)详解
这篇文章讲解了堆数据结构,以及堆的实现和使用等。原创 2023-12-19 10:46:07 · 4221 阅读 · 0 评论