- 博客(47)
- 收藏
- 关注
原创 【数据结构】哈希表实现
在实现哈希表之前,我们先来学习一下什么是哈希表。在传统的数据结构中,例如数组,链表和二叉平衡树等数据结构,这些数据结构的元素关键码与其存储位置之间没有对应的关系,因此在这些数据结构中进行查找的时候,必须要经过关键码的多次比较来实现,使得顺序的数据结构的查找时间复杂度为O(n),平衡树的查找时间复杂度为O(logn),它们的搜索效率都取决于比较的次数。那么我们能不能设计出一种数据结构,不需要通过关键码的比较就可以直接定位到我们需要搜索的元素呢?就这样哈希表诞生了。
2024-11-28 21:59:08
943
1
原创 【C++】map和set的模拟实现
在本篇博客中,作者将会带领你C++STL库中的,其中我只实现一些比较重要的成员函数,在进行之前,你需要先懂得,因为map和set的。
2024-07-09 16:29:34
894
原创 【数据结构】红黑树实现详解
红黑树是一棵二叉搜索树,它的结点不是黑的就是红的,其中它有一个非常重要的通过对任何一条从根到叶子的路径上各个结点的着色控制,保证了红黑树没有一条路径会比最短路径长出两倍,达到接近平衡的特点。看到这句话,可能你还云里雾里的,但是不要怕,简单的来说,红黑树的特点就是:找出树中最短的路径和最长的路径,其中这条最长路径的长度不会大于最短路径长度的两倍。如下图所示:在这棵红黑树中,最短的路径是最左边的那条,长度为3,最长的路径是最右边的那条,长度为4,即4 < 2*3,最长的路径不会大于最短路径的两倍。
2024-06-17 19:15:39
917
原创 【数据结构】AVLTree实现详解
在二叉搜索树的博客中,我们提到了,当插入的数据有序或者接近有序的时候,二叉搜索树会退化成单支树,导致其效率变低,所以为了解决这种情况,于是我们提出了AVLTree,即二叉平衡搜索树。如下图就是一棵二叉搜索树退化成的单支树。那么AVLTree又是如何实现使二叉树搜索树不会退化成单支树的呢,它又是如何保证效率的呢?因为AVLTree严格的要求左右子树的高度差不能大于1,且每一棵子树也一样。如下图所示。
2024-06-08 12:45:11
1499
2
原创 【C++】stack、queue和priority_queue的模拟实现
在本篇文章中,讲解了stack和queue以及priority_queue的实现详解
2024-05-06 19:18:21
850
原创 【C++】类与对象(上篇)
/用struct定义类int _year;int _month;int _day;//用class定义类class dateint _year;int _month;int _day;在C++中,有两种方法来定义类,但是在C++中,用class来定义类更常见。知道了C++中多了类,那么类一般是如何定义的?一般来说,类的定义有两个方式。类的成员函数的声明和定义都放在类中。int _month;int _day;
2024-03-05 22:37:15
985
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人