![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 83
库库森
这个作者很懒,什么都没留下…
展开
-
归并排序(递归,非递归)
归并排序,除了递归,你一定想要知道非递归是怎样实现的!原创 2022-03-31 14:04:31 · 2619 阅读 · 3 评论 -
一定不能错过的快排呦(两种交换排序实现)
我不允许有人看了我的快排,还学不会!原创 2022-03-29 22:16:04 · 789 阅读 · 0 评论 -
选择排序(选择排序,堆排序)
两种选择排序!原创 2022-03-25 22:23:41 · 1551 阅读 · 1 评论 -
插入排序(直接插入和希尔排序)
直接插入排序,优化直接插入的希尔排序!你值得拥有!原创 2022-03-24 21:06:10 · 3307 阅读 · 0 评论 -
二叉树与队列(队列实现:完全二叉树的判断以及层序遍历)
队列与二叉树不可分割的关系!原创 2022-03-22 20:23:17 · 2548 阅读 · 2 评论 -
二叉树的基本内容(创建,遍历,节点个数,深度计算)
二叉树从创建到销毁,满满的递归!原创 2022-03-22 12:29:40 · 5099 阅读 · 1 评论 -
堆结构的两个重要应用(topk问题,堆排序)
堆结构体有什么用?堆排序 & topK 你值得拥有原创 2022-03-19 21:42:46 · 1497 阅读 · 1 评论 -
堆结构实现完全二叉树
堆实现完全二叉树(主要有调堆方法实现以及堆删除元素)!快来看看吧!原创 2022-03-17 20:58:30 · 1088 阅读 · 3 评论 -
设计循环队列(LeetCode:622.设计循环队列)
简单的接口调用实现循环队列!快来看看吧!原创 2022-03-16 15:40:03 · 1527 阅读 · 0 评论 -
初阶数据结构之队列
写在前面的话:小伙伴们大家好啊!上篇文章我们提到了栈这种数据结构。那么我们知道,栈是属于先进后出的一种数据结构,那么本文将为大家带来的是另一种分格不同的先进先出的数据结构,队列。一,什么是队列1.1队列基本结构一种线性表,支持一端插入,一端删除的特殊线性表。支持插入的那一端称为队尾,而支持删除的的另一端称为队头。如下图所示:1.2队列实现结构那么我们知道,对于队列这样的先进后出的结构,如果我们用顺序表实现,那么对于删除将会比较麻烦,因为顺序表如果是删除的话,则需要将后面原创 2022-03-15 17:18:32 · 698 阅读 · 0 评论 -
一首歌的时间学会栈的基本使用(数据结构的一种类型,并非操作系统层面的栈内存)
一首歌的时间学会栈的基本操作!原创 2022-03-15 12:11:49 · 1129 阅读 · 1 评论 -
带头双向链表解析
带头双向循环链表!妈妈再也不用担心我学不会链表了!原创 2022-03-13 15:07:28 · 644 阅读 · 0 评论 -
LeetCode:138. 复制带随机指针的链表(含原码实现)
带随机指针的单链表的深度拷贝!干货满满鸭!原创 2022-03-12 12:28:37 · 1734 阅读 · 3 评论 -
链表带环之双指针,入口节点问题
小小的难度,满满的干货,冲鸭!原创 2022-03-11 14:18:10 · 510 阅读 · 0 评论 -
浅尝链表带环问题(LeetCode:141,142 环形链表)
浅尝链表带环,为什么需要用双指针?原创 2022-03-10 22:28:22 · 1019 阅读 · 2 评论 -
手把手教你学会简单的链表相交问题(LeetCode 160 .相交链表)
一首歌的时间学会链表相交问题,交给我啦!原创 2022-03-07 23:12:19 · 2495 阅读 · 6 评论 -
链表回文(牛客网:OR36 链表的回文结构)
看完之后,会回文和不会回文的都沉默了!原创 2022-03-07 09:35:40 · 999 阅读 · 1 评论 -
“小朋友大人排队”问题(十分钟带你玩转 牛客网 CM11 链表分隔)
目录前言情景化分析一,案例题目分析1.1题目要求1.2题目解析二,思路分析1.2 第一步思路1.2之后步骤三,源码分享前言小伙伴们大家好啊!今天小编为大家带来一篇牛客网上,有关链表分隔的一道相对比较复杂的题目。虽然大家可能对单链表已经见怪不怪了,因为我们确实接触到了很多有关单链表的操作,比如单链表的合并,查找单链表某个指定节点,以及删除单链表指定位置的元素。情景化分析有时候在特定的场合我们有以下做法:这就相当于我们排队,大家都是随便排的.原创 2022-03-06 21:32:34 · 631 阅读 · 2 评论 -
深究单链表合并(案例:LeetCode:21.合并两个有序链表)
目录前言一,案例题目分析1.1 LeetCode 21.合并两个有序链表1.2图画实例1.3思路分析1.3.1需要用到的指针1.3.2整体思路二,案例代码分析2.1 某个链表为空2.2整体循环2.3最后多于节点链接三,原码四,总结前言小伙伴们大家好啊!我们知道,对于链表而言,其实有时需要同数组一样,将所有元素进行有序合并,以便后续对数据进行分析。那么对于单链表而言,因为涉及到指针域 next 的问题,合并序列也将变得比较复杂。那么.原创 2022-03-05 23:44:01 · 1165 阅读 · 2 评论 -
牛客网:链表中倒数第 k 个节点
目录前言题目规律总结思路步骤一:步骤二:步骤三:代码实现前言小伙伴们大家好啊!今天小编为大家带来一篇牛客网上有关链表的题目:链表中倒数第k个节点。题目如下图所以。其实该题目,我们仔细看的话,可以发现,也就是单链表查找节点,只不过是有一点变形的,因为这里不是单纯的查找第几个,而是倒数第几个节点。然后题目中也表明,涉及到了双指针问题,其实很多单链表的题目都是需要双指针来完成的。规律总结因为需要返回的是倒数第k个节点,所以我们用两个指针..原创 2022-03-05 18:28:40 · 567 阅读 · 0 评论 -
LeetCode:876. 链表的中间节点
目录前言题目规律思路首先:链表节点数为奇数其次:链表节点数为偶数代码实现前言小伙伴们大家好,今天依旧为大家带来一篇力扣上有关单链表的题目:链表的中间节点。题目那么我们废话不多说,首先来看题目:如上图所示,我们需要将一个链表的中间节点返回,如果链表的个数是偶数的话,我们就需要返回第二个节点。规律对于该题,其实我们是有一个规律的,那就是用两个指针,然后在两个指针同时指向首节点的情况下,快指针 fast 一次 “走两步”,慢指针 slow原创 2022-03-05 16:52:38 · 316 阅读 · 0 评论 -
LeetCode:206. 反转链表
前言:小伙伴们大家好,今天小编为大家带来一篇力扣上与链表有关的一个题目:反转链表。顾名思义,该题需要我们将原有的一个链表的所有元素都取原创 2022-03-05 00:28:38 · 196 阅读 · 0 评论 -
LeetCode:203. 移除链表元素
目录前言题目思路问题1问题2问题3力扣代码实现总结:前言小伙们大家好!今天小编为大家带俩一篇力扣上有关删除链表元素的题目:移除链表元素。题目如下:题目如上图所示,题目中要求我们删除单链表中等于 val 的节点,然后返回头指针。那么我们发现,其实这个删除就与单链表中的指定位置删除节点差不多。思路那么分析完题目之后,其实我们发现,这里还是需要分为两种情况去分析的,首先就是头节点就是我们要删除的节点,其次就是其他任意节点。问题1首.原创 2022-03-04 00:31:21 · 286 阅读 · 0 评论 -
单链表基本功能解读
前言小伙伴们大家好,前面的文章对于顺序表我们做了一定的分析。但是我们发现,其实顺序表有一定缺陷的:首先就是开辟的空间可能用不完,会造成空间浪费;其次就是头部或者中间的插入删除时间复杂度是O(N),所以我们认为对于顺序表而言,有些时候我们不应该用它,而是用一种没有以上缺陷的顺序表。再者就是增容的时候申请空间,资源拷贝,然后释放空间会有一定的消耗。那么其实,在线性表中有这样一种结构,它的物理地址是“依次链接”的,而且每个元素在内存中都是随机存放的,如果我们需要新增元素的话,只需要将该元素原创 2022-03-03 22:13:57 · 906 阅读 · 0 评论 -
LeetCode:225 .用队列实现栈
用队列的先进先出实现栈的先进后出!你值得拥有原创 2022-03-02 23:58:46 · 229 阅读 · 0 评论 -
剑指offer 56- I 数组中数字出现的次数
目录前言题目思路第一步第二步第三步代码实现前言小伙伴们大家好!今天 up 主为大家带来的是程序员必刷题之剑指offer中的一道比较简单,但同时又是很重要的一道题:数组中数字出现的次数。题目力扣上题目描述如下所示:好的,那么如上题所描述的一样,该数组中除了两个数字只出现了一次,其他数全部都出现了两次。那么我们就可以理解题目所说的了。其次,该题目要求了时间复杂度以及空间复杂度,所以我们必须得在一定的范围内去做。思路第一步我们知道,有一原创 2022-02-28 00:02:55 · 367 阅读 · 0 评论 -
LeetCode:20. 有效的括号
力扣括号匹配问题(栈实现),稍有难度,但细节满满鸭!原创 2022-02-27 22:42:20 · 293 阅读 · 0 评论 -
LeetCode:26. 删除有序数组中的重复项
目录前言题目思路起始位置:第一次移动:之后移动:代码实现前言小伙伴们大家好,之前为大家分析了一篇力扣上的第二十七题,删除数组中的等于 指定值 的题。本文为大家带来第二篇顺序表相关的力扣题:删除有序数组中的重复项。题目如下图所示:那么我们看到,其实本题相对于上一篇文章的 27题来说,只是删除的对象不同了以及现在的序列是有序的之外,在其他所有方面,都是一模一样的,所以这里我们对于题目就不做过多的赘述了。tips:上篇文章:LeetCo..原创 2022-02-27 12:52:35 · 278 阅读 · 0 评论 -
LeetCode:27. 移除元素
前言小伙伴们大家好,今天为大家带来的是力扣上的比较简单的,有关顺序表的题。首先是第二十七题,移除元素。题目那么首先我们对题目进行分析,如下图所示:这里是说需要我们原地移除数组中等于val的数,也就是说我们不能创建新的数组,因为空间复杂度为O(1)。然后说元素的顺序可以改变,然后不需要考虑数组中超出新长度后面的元素,也就是说我们只需要,将不等于val的值覆盖到前面等于 val的数的位置上面即可。这种做法也是在顺序表中我们删除元素的一种比较常用的方法。思路好的...原创 2022-02-27 11:50:51 · 349 阅读 · 0 评论 -
剖析:顺序表的增删改查
目录前言:一,什么是顺序表1.1顺序表的两种形式1.2动态顺序表二,顺序表增删改查的接口实现2.1结构体空间表示顺序表2.2顺序表的初始化2.2malloc新增空间2.3增加元素2.4删除元素2.5查找元素2.6指定位置元素的插入和删除2.6.1指定位置元素的插入2.6.2指定位置元素的删除前言:小伙伴们大家好,今天小编为大家带来的是关于顺序表的内容,因为我们知道顺序表其实在一些方面运用还是比较多的。虽然对于链表等结构来说,顺序表依旧.原创 2022-02-26 22:16:15 · 915 阅读 · 0 评论 -
LeetCode:消失的数字
前言本文将为大家介绍力扣中一个较为简单的题:消失的数字。好的,原题要求如下: 思路一思路一特点:对于该题,其实是有很多种思路实现。因为该数组是有规律的,首先是 0 ~ n 的所有整数(缺一个),那么说明该数组所有元素(假设所有元素都不缺)的所有元素的和,积都是对固定的。那么如果缺一个数,我们可以通过和或者积的形式对其进行操作。 ...原创 2022-02-19 14:09:20 · 622 阅读 · 0 评论 -
左右旋对比
目录前言一,逆置法1.1逆置思路1.2逆置实现二,左旋和右旋对比 右旋代码分析 特点对比前言之前在up主的博客里面已经有过了对于左旋的三种实现方法。当然,如果我们考虑到时间复杂度的问题,那么我们只要一种方法,那就是逆置法。那么接下来我们分别对于左旋和右旋的中心思想做一个比较。tips:本文对于...原创 2022-02-18 10:33:37 · 563 阅读 · 0 评论