![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构初阶
文章平均质量分 95
C++忠实粉丝
逆境也是生活。
展开
-
排序算法(4)之快速排序(2)
排序算法(4)之快速排序(2),快速排序的优化以及非递归实现快速排序.原创 2024-07-18 21:47:54 · 841 阅读 · 0 评论 -
排序算法(3)之冒泡排序
排序算法(3)之冒泡排序原创 2024-07-17 12:36:38 · 909 阅读 · 1 评论 -
排序算法(2)之选择排序----直接选择排序和堆排序
详细讲解了排序算法(2)之选择排序----冒泡排序和堆排序,简单明了,小白也能轻松看懂原创 2024-06-26 16:11:03 · 1150 阅读 · 3 评论 -
排序算法(1)之插入排序----直接插入排序和希尔排序
详细讲解了排序算法中插入排序的直接插入排序和希尔排序,小白也能轻松看懂!原创 2024-06-25 21:15:19 · 752 阅读 · 2 评论 -
二叉树经典OJ练习
力扣上二叉树的基础OJ练习,欢迎 点赞👍 收藏✨ 留言✉ 加关注💓原创 2024-06-23 16:04:22 · 917 阅读 · 0 评论 -
数据结构之二叉树的超详细讲解(3)--(二叉树的遍历和操作)
数据结构二叉树的终篇,详细讲解了二叉树的遍历和各种操作,简单明了,小白也能轻松看懂!原创 2024-06-23 01:28:25 · 1273 阅读 · 1 评论 -
数据结构之二叉树的超详细讲解(2)--(堆的概念和结构的实现,堆排序和堆排序的应用)
之前发布过数据结构之二叉树的超详细讲解(1)--(树和二叉树的概念和结构),今天重点讲解堆的概念和结构的实现,堆排序和堆排序的应用,感兴趣的宝子们赶紧点赞收藏起来吧!💓💓💓原创 2024-05-23 00:19:27 · 1450 阅读 · 1 评论 -
数据结构之二叉树的超详细讲解(1)--(树和二叉树的概念和结构)
完全二叉树是指除最后一层外,其他节点上的节点数均达到最大值,根据性质五:用0到2n-1进行编号,编号为n-1的节点左叶子数为2n-1,因此叶子节点编号为n,n+1,,,,,,2n-1,故叶子节点数为n个;4. 若规定根结点的层数为1,具有n个结点的满二叉树的深度,h= log2(n+1)(ps:log2(n+1)是log以2 为底,n+1为对数)4. 若规定根结点的层数为1,具有n个结点的满二叉树的深度,h= log2(n+1)(ps:log2(n+1)是log以2 为底,n+1为对数)。原创 2024-05-16 23:59:20 · 713 阅读 · 0 评论 -
栈和队列经典面试题--(用队列实现栈,设计循环队列)
在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。这里我使用了动态数组去实现循环队列,因为这里循环队列的空间是固定的,所以在循环队列的结构体中加入int k,代表循环队列的长度。这里我们要将有数据的队列除最后一个数据的其他数据导入空队列,队列中的最后一个数据即为栈顶。// 返回 false,队列已满。获取队尾元素和队头有点不一样,因为我们的队尾指针指向的是队尾的下一个元素,如图所示;我们两个栈,一个存储数据,然后倒入到我们另一个栈中,栈顶即为我们所需的队首元素。原创 2024-05-15 23:28:55 · 1374 阅读 · 0 评论 -
数据结构之队列的超详细讲解
我们之前实现了栈这个数据结构,今天我们就对队列这个数据结构进行讲解和实现.如果对栈这个结构还不是很了解的话,大家可以先去看--数据结构之栈的超详细讲解-CSDN博客,后面我会发布栈和队列的经典面试题,如果感兴趣的宝子们赶紧点赞关注收藏起来吧!原创 2024-05-08 23:17:59 · 1055 阅读 · 1 评论 -
数据结构之栈的超详细讲解
这个专题是专门对栈进行详细的讲解,栈这个数据结构其实和之前的顺序表和单链表一样,同样是线性结构,但它的限制更大,如果想看之前单链表和顺序表数据结构的实现,或者是之后的数据结构我现在还没出的,都可以订阅我这个数据结构初阶的专栏--http://t.csdnimg.cn/sz4xS.原创 2024-05-06 23:10:04 · 1289 阅读 · 4 评论 -
链表经典面试题02--链表的带环问题
中均有详细讲解,大家可以先看看,这里就不过多介绍,简而言之就是定义两个指针,一个为慢指针,一次走一步,一个为快指针,一次走两步,当它们两个相遇时,即为环形链表,快慢指针法在链表中很常见,大家一定要牢牢掌握.当slow进入环中,fast和slow相距为N,现在fast要追slow,fast每次二步,slow每次一步,每追击一次,它们两个的距离就减一,直到它们两个相遇,所以它们两个一定会相遇.我们知道,在不带环链表中,它们两个永远都不会相遇,所以我们只需要在带环链表中去证明。指针再次到达,则链表中存在环。原创 2024-05-05 22:31:52 · 1082 阅读 · 2 评论 -
链表经典面试题01
首先题目要求判断两个链表是否相交,若相交返回相交的起始节点,否侧返回NULL,那么第一个问题如何判断两个链表是否相交呢?这次的题均来自力扣和牛客有关链表的经典面试题,代码只会展示最优的解法,之前发布过单链表的经典算法--这里就涉及了两个算法,一个是找到链表的中间节点并返回,一个是翻转链表.这两个算法大家可以去看。,请你找出并返回两个单链表相交的起始节点。给你两个单链表的头节点。本题相对原题稍作改动。原创 2024-05-04 23:32:42 · 1337 阅读 · 1 评论 -
双向链表专题
之前我发布过单链表专题,其中就介绍了链表的分类,链表一共了八种,其中最常见便是单链表和今天的主题双向链表,双向链表其实就是在单链表的基础上增加一些修饰,所以单链表是基础,如果还不是很了解的宝子们,可以先去看一下这篇博客--注意:这⾥的“带头”跟前⾯我们说的“头节点”是两个概念,实际前⾯的在单链表阶段称呼不严 谨,但是为了同学们更好的理解就直接称为单链表的头节点。带头链表⾥的头节点,实际为,哨兵位节点不存储任何有效元素,只是站在这⾥“放哨 的”原创 2024-05-01 23:39:50 · 774 阅读 · 2 评论 -
算法的时间复杂度和空间复杂度
在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一 个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知 道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个 分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。原创 2024-04-30 16:18:50 · 1005 阅读 · 0 评论 -
单链表经典算法
先创建我的循环链表,当链表的头节点不等于尾节点时,说明还有人需要淘汰,这也就是循环的条件,用count进行计数,当count等于m时,进行删除节点的操作,其他情况count加加,不需要销毁节点,最后返回(首尾)节点的val值即可.我创建了一个新的链表和两个指针l1,l2,分别指向两个链表的头节点,遍历原链表进行比较val值得大小,将节点小得值直接尾插到新链表中,注意:遍历得结果有两种情况,无论哪一种情况,我都需要将剩余得节点尾插到新链表中.创建一个新的链表,遍历原链表,将值不为val的节点尾插到新链表中。原创 2024-04-30 00:14:06 · 878 阅读 · 2 评论 -
单链表专题
/定义节点的结构//数据+指向下一个节点的指针//方便修改数据类型//指向下一个节点的指针}SLTNode;这里需要用到结构体指针指向下个节点,从而将数据连接起来.原创 2024-04-28 23:44:59 · 840 阅读 · 1 评论 -
顺序表经典算法
这两道题只是抛砖引玉,如果你还没有进行,你还可以去力扣刷更多的题目,这是力扣的官网。原创 2024-04-28 00:20:07 · 737 阅读 · 0 评论 -
基于动态顺序表实现通讯录
/定义联系人数据结构//姓名 性别 年龄 电话 地址int age;}peoInfo;因为我们之前的顺序表使用的自定义类型为int,而通讯录需要结构体类型,我们只需要将int SLDateType改为peoInfo SLDateType,同时要引用Contract.h的头文件//方便统一修改类型。原创 2024-04-27 22:41:58 · 768 阅读 · 2 评论 -
顺序表的构建和基本操作
本文对顺序表的概念.构建和操作进行了详细的讲解,需要的同学点赞关注不迷路哦!原创 2024-04-27 15:02:39 · 944 阅读 · 0 评论