![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 91
我可是ikun啊
这个作者很懒,什么都没留下…
展开
-
MySQL:索引与事物
至于B 树和B+ 树的代码就放在数据结构进阶的部分再继续!!!原创 2023-03-11 16:55:01 · 1154 阅读 · 11 评论 -
手撕八大排序(下)
结束了上半章四个较为简单的排序,接下来的难度将会大幅度上升,那么就开始本章的排序吧!原创 2023-03-02 10:25:33 · 912 阅读 · 13 评论 -
哈希表以及哈希冲突
我们在前面讲解了TerrMap(Set)的底层是一个搜索二叉树,同时Set和Map还存在HashSet(Map)类,但是HahsMap(Set)到底是什么呢?本章来详细介绍以下。原创 2023-02-25 17:59:00 · 2437 阅读 · 19 评论 -
手撕八大排序(上)
既然同为插入排序,那必然是有共同点的。希尔排序是建立在直接插入排序基础上,经过优化的插入排序。原创 2023-02-22 22:22:59 · 3469 阅读 · 5 评论 -
Map和Set(Java详解)
在开始详解之前,先来看看集合的框架:可以看到Set实现了Collection接口,而Map又是一个单独存在的接口。而最下面又分别各有两个类,分别是TreeSet(Map)和 HashSet(Map)。TreeSet(Map)的底层是一颗搜索树(红黑树),我们在以后数据结构的进阶中会讲到;HashSet(Map)的底层是一个哈希表,这个我们等会就会说到。那我们的Map和Set是用来干什么的呢,其实就是用来查找和搜索的;以后涉及到查找和搜索的可以选择使用这两个接口下面具体的类。原创 2023-02-15 21:15:32 · 1022 阅读 · 21 评论 -
java对象的比较
上一章中关于PriorityQueue的使用要注意:1. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出ClassCastException异常2. 不能插入null对象,否则会抛出NullPointerException3. 没有容量限制,可以插入任意多个元素,其内部可以自动扩容4. 插入和删除元素的时间复杂度为5. PriorityQueue底层使用了堆数据结构。原创 2023-02-03 21:54:10 · 1066 阅读 · 22 评论 -
PriorityQueue
PriorityQueue其本质是一个优先级队列的集合。原创 2023-02-01 21:08:37 · 960 阅读 · 21 评论 -
栈和队列
用单链表我们用head记录队头,last记录队尾这很容易找到队头和队尾,我们用数组模拟队,front作为队头,rear作为队尾。因为队列的第一个元素并非就存储在下标为0的位置处,那么我们就无法直接通过下标去访问队头,所以无法用下标访问的方式去获取元素队头和队尾。同时还存在另一个问题,如果我们的队头的下标是数组的尾部,我们如何继续存储元素?这是我们急迫需要解决的问题。原创 2023-01-29 23:05:59 · 1389 阅读 · 15 评论 -
树型结构——二叉数
之前就说过我们的数据结构分为两种,分别是线性结构和非线性结构,我们今天要学的第一种线性结构就是树型结构。原创 2023-01-26 20:07:10 · 741 阅读 · 15 评论 -
链表的实际应用
假设:我们有这么个链表:我们需要删除所有date域为key的结点。假设key为4:思路(快慢指针):1. 我们设置两个指针,一个叫做fast,用于与date域进行判断;另一个叫做slow,用于将所有的链表串联。fast指向head.next;slow指向slow。2. fast先走,判断date域中的的值和key的对比结果。如果结果为不相等,那么slow和fast一起向后走一步;如果结果相等:将fast.next 赋给slow.next ,用于跳过这个指针。原创 2022-12-17 20:17:31 · 996 阅读 · 7 评论 -
单链表
数据元素的逻辑顺序是通过中的指针链接次序实现的。根据前一章顺序表的介绍,我们发现对于顺序的删除和添加元素很麻烦,如果是一个非常大的基数那么我们所,所以我们还有一种表可以极大的减少的时间。那就是本章的主题:链表。原创 2022-12-14 15:39:28 · 517 阅读 · 2 评论 -
一篇文章让你搞懂Java顺序表
在数据结构体系中我们将整个数据结构分为两类,一类是线性结构;线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...另一类是非线性结构:非线性结构,数学用语,其逻辑特征是一个结点元素可能有多个直接前驱和多个直接后继。常见的非线性结构:树、图......原创 2022-12-04 15:52:02 · 748 阅读 · 16 评论 -
包装类和泛型
1. 泛型又称参数化类型,是jdk5.0以后出现的新特征,解决数据类型安全问题。2. 再类声明或实例化时只要指定好需要的具体类型即可。3.Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会发生类型转换异常,同时代码更加健壮整洁。4.泛型的作用是:可以在类声明是通过一个标识符表示某个属性的类型,或者某个方法的放回类型或者参数类型。原创 2022-11-30 14:01:59 · 734 阅读 · 21 评论 -
Java中数组的实际经典案例
数组不仅是Java中学习的重点,也是数据结构与算法中学习的重点,我们不仅要熟悉它,也要懂得运用它。原创 2022-11-08 10:52:45 · 1128 阅读 · 35 评论 -
递归问题的实际运用:汉诺塔问题
该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。原创 2022-11-03 17:10:09 · 241 阅读 · 24 评论 -
BF算法和KMP算法
即暴力(BruteForce)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;我们发现,第三个并不匹配,所以需要回溯,那么我们就需要用到第三个指针,回到从第一个开始匹配的指针的位置。KMP算法由D.E.Knuth,J.H.Morris和V.R.Pratt三位大神在1977年提出,它的核心算法是利用匹配失败后的信息,减少模式串与主串的匹配次数,以达到快速匹配的目的。如果在接下来遇到的字符串不同,则需要回溯。原创 2022-10-29 18:36:44 · 1059 阅读 · 43 评论