
数据结构太复杂
文章平均质量分 93
学习数据结构的博客!C/C++
慕雪华年
在校大氵生一枚
展开
-
【算法】C程序的运行速度测试
C语言程序的运行速度测试more上提到了一点,即我们应该学会估计一个时间复杂度较高的算法,在机器上的运行速度。图简单大部分OJ题目,对C/C++代码的时间限制都是1s。所以我们测试的目标也将放在1s上。原创 2024-08-22 06:48:34 · 1281 阅读 · 0 评论 -
【算法】从x的n次方看递归时间复杂度计算
从x的n次方看递归时间复杂度计算more。原创 2023-04-24 07:20:24 · 1001 阅读 · 0 评论 -
【C++】图
本文包含了图的基本概念more。原创 2023-03-11 14:47:10 · 1255 阅读 · 1 评论 -
【C++】并查集
并查集是多个独立集合的合集,用于表示数据之间的关系。比较生动的例子,就是我们生活中的朋友圈(不是wx的那个啊)张三和李四是好朋友,那么他们就构成了一个集合A王舞和王陆是好朋友,那么他们也构成了一个集合B此时,王舞突然认识了李四,这时候,就可以把A和B合并成一个集合推而广之,一个并查集中可以有多个这样的集合,多个朋友圈。并查集中的每一个集合是用多叉树来表示的。原创 2022-12-01 20:11:51 · 1736 阅读 · 1 评论 -
【C++】STL:map/set,使用红黑树模拟实现
最近感觉自己真的很忙,但又不知在忙什么。事情一个接着一个,虽然学校的课不算多,但事情真的没少多少。有些事情自己又有拖延症,再加上作息不规律(指下午一睡睡3h),浪费了好多时间……原创 2022-09-14 19:42:36 · 566 阅读 · 0 评论 -
【C++】红黑树的性质以及实现
在下篇博客中,我会记录map和set的基本使用,以及通过红黑树模拟实现map和set。原创 2022-09-04 18:48:50 · 595 阅读 · 0 评论 -
【C++】搜索二叉树/KVL树
搜索二叉树/二叉查找树原创 2022-08-01 10:00:10 · 474 阅读 · 0 评论 -
【C语言】八大排序算法,速收藏这篇2w字详解
文章目录前言1.插入排序1.1直接插入1.2希尔排序2.选择排序2.1直接选择2.2堆排序3.交换排序3.1咕噜咕噜排序3.2快速排序3.2.1 Hoare法两种极端情况3.2.2 挖坑法3.2.3 前后指针法优化极端情况3.2.4快排的时间/空间复杂度3.3快排非递归实现4.归并排序4.1打印printf调试大法4.2递归源码4.3非递归实现4.4归并排序的时间/空间复杂度5.计数排序5.1计数排序的特性6.排序算法的稳定性6.1稳定性表格结语前言如果你把本专栏从头看到这里,那么恭喜你,本篇博客已经是原创 2022-04-25 10:57:22 · 2338 阅读 · 14 评论 -
【C语言】带你用偷懒的方式刷爆二叉树OJ题
没想到,OJ也能偷懒,哈哈哈哈原创 2022-04-16 17:08:58 · 1530 阅读 · 3 评论 -
【C语言】数据结构-链式二叉树,详解分治递归和层序遍历
本文用分治递归的思想,讲解了链式二叉树的前/中/后序遍历。还包括二叉树节点个数的计算,层级遍历以及判断是否是完全二叉树的讲解原创 2022-04-16 14:09:30 · 1817 阅读 · 8 评论 -
【C语言】什么是堆?堆排序和TopK问题又是如何实现的
文章目录前言1.堆的概念2.堆的实现2.1向上调整2.2向下调整2.3代码测试3.堆排序3.1为什么要进行堆排序?3.2在原本数组上建堆3.2.1向上调整-插入数据3.2.2 向下调整-删除数据3.2.3比较时间复杂度3.3代码示例4.TopK问题4.1问题说明4.2如何求解?4.3测试代码结语前言在上一篇数据结构博客中,我带大家一起学习了树以及二叉树这一个全新的数据结构。【C语言】什么是树,二叉树又是啥玩意本篇博客,就让我们一起来看看常被人津津乐道的堆排序以及堆这个数据结构是一个什么样的存在吧原创 2022-04-11 16:29:28 · 1714 阅读 · 5 评论 -
【C语言】什么是树,二叉树又是啥玩意
文章目录前言1.什么是树?1.1树的概念1.2树的相关知识点1.3树的代码表示2.二叉树2.1概念2.2特殊的二叉树2.3二叉树的性质2.4几个选择题3.二叉树的存储结构3.1顺序存储3.2链式存储结语前言在之前的数据结构学习中,我们学习了顺序表、链表、栈、队列这几种结构它们都是用链表或者数组的方式来实现的,主要考察我们对结构体的运用今天让我们来学习一个新的数据结构,也就是下面这副图里面的树啊不好意思,图拿错了!😜是下面这个才对1.什么是树?1.1树的概念树是一种非线性的数据结构,原创 2022-04-06 23:05:32 · 442 阅读 · 3 评论 -
【C语言】三道例题让你彻底学会栈和队列
文章目录前言1.用队列实现栈1.1思路1.2队列的代码1.3本题的代码2.用栈实现队列2.1思路2.2栈的代码2.3本题的代码3.设计循环队列3.1思路3.1.1判断是否为空3.1.2判断是否为满3.2本题代码实现结语前言本篇博客,将带着大家刷3道非常经典的OJ题。它们并不算特别难,但对我们理解数据结构中栈和队列的概念有很大的帮助。如果你还不了解栈,可以看看我之前的博客👉点我队列的博客就不写啦,本篇刷题的时候会提到队列的操作话不多说,直接开始吧!1.用队列实现栈leetcode:225原创 2022-03-30 15:22:48 · 2070 阅读 · 2 评论 -
【C语言】数据结构-栈(顺序表实现)
本文详解了数组栈的实现原创 2022-03-26 18:05:59 · 2387 阅读 · 4 评论 -
【C语言】你知道吗,双向带头循环链表,其实比单链表还简单
文章目录前言1.双链表的结构2.代码实现2.1头文件2.2源文件结语前言在之前的数据结构学习中,我们学习了顺序表、链表这两种结构顺序表:博客链接1单链表:博客链接2链表OJ:博客链接3之前本来是不想写双链表的博客的,但是看着自己的数据结构专栏少了一part,有强迫症的我感觉很不爽,于是补上了本篇大水文1.双链表的结构除了单链表以外,还有一个结构,是双向带头循环链表。这个链表的形式如下头节点的prev指向尾部节点尾节点的next指向头节点,构成循环别看它的形式有些复杂,实际代码原创 2022-04-06 16:43:20 · 1423 阅读 · 3 评论 -
【C语言】带你刷爆链表OJ,看了就会
文章目录前言,优快云的小问题😥第一题:206.反转链表第二题:876.链表的中间节点解法一:遍历解法二:快慢指针(很爽👍)第三题:OR36 链表的回文结构👨🔧第四题:链表中倒数第K个节点第五题:CM11 链表分割第六题:21. 合并两个有序链表第七题:160.相交链表第八题:141.环形链表特殊情况:追不上第九题:142.环形链表Ⅱ(较难😰)题目分析敲代码第十题:138.复制带随机指针的链表(很难😱)解法一:用计数器找到对应位置解法二:先复制后断开(๑•̀ㅂ•́)و✧结语💪前言,优快云的小问题😥最原创 2022-03-25 10:38:07 · 2038 阅读 · 4 评论 -
【C语言】链表太难学不懂?看这一篇就够了
文章目录前言😀1.什么是链表1.1链表的分类1 单向/双向链表2 带头/不带头3 循环或者非循环2.开始敲代码!2.1 链表结构2.2 开辟节点2.3 尾插/头插2.4 尾删/头删2.5 查找/更改2.6 在pos位置前/后插入2.7 在pos位置删除数据2.8 打印链表2.9 销毁链表3.测试结语🤳前言😀之前的博客中我们讲述了顺序表的数据结构,顺序表和之前C语言学习的数组还是比较相似的。今天要学习的是链表,这是一个全新的数据结构,和之前我们学的内容都不相同。编译器:VS20191.什么是链原创 2022-03-23 18:26:01 · 10212 阅读 · 4 评论 -
【C语言】顺序表详解,灵活运用所学知识
文章目录前言1.什么是顺序表?1.1线性表2.编写你的顺序表!2.0 赛前准备2.1 初始化2.2 容量检查2.3 打印顺序表2.4 尾插和尾删2.5 头插和头删2.6 插入和删除2.7 查找和更改3.菜单一些err总结前言顺序表是我们学习数据结构第一阶段的必经之路什么是顺序表,且听我慢慢道来本篇博客用到的知识点:动态内存管理自定义类型-结构体所用编译器:VS20191.什么是顺序表?1.1线性表线性表是数据结构的一种,它是n个具有相同特性的数据元素的有限序列。 常见的线性表:顺序原创 2022-03-17 08:09:22 · 1098 阅读 · 7 评论 -
几分钟时间让你彻底学会空间复杂度和时间复杂度
文章目录前言🕵️♂️1.算法效率🧐1.1什么是算法1.2如何衡量?2.时间复杂度⏰2.1大O的渐进表示法2.2多种情况取最坏2.3常见时间复杂度的计算NO.1NO.2NO.3 常数阶NO.4 strchrNO.5 冒泡排序能否通过循环层级判断?NO.6 二分查找NO.7 计算N!递归算法时间复杂度计算NO.8 斐波那契数列NO.9NO.103.空间复杂度🏠3.1概念3.2空间复杂度计算NO.1 冒泡排序计算时注意其与N的关系NO.2 斐波那契数列空间重复使用问题NO.3 阶乘4.常见复杂度对比👐结语😘前原创 2022-03-13 11:54:36 · 1568 阅读 · 4 评论