
数据结构 | C语言
文章平均质量分 97
这是数据结构初阶的博客仓库,当然是用C语言实现的,欢迎各位大佬围观
北 海
六月城市之星(安顺)Top1、C/C++领域新星创作者、CSDN实力新星、华为云积极博主、阿里云社区专家博主,代码改变世界
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
带你学懂数据结构中的八大排序(下)
排序(Sort)是初阶数据结构中的最后一块内容,所谓排序,就是通过某种手段,使目标数据变为递增或递减,排序有很多种方式:插入、选择、交换、归并、映射等等,本文会介绍这些方式下的详细实现方法,因篇幅较长,故分为上下文的形式介绍,本文是下半部分。下面是通过排序生成的排行榜说明:快排与归并采用的都是递归版排序名称时间复杂度空间复杂度稳定性直接插入排序O(N^2)O(1)稳定希尔排序O(N^1.3)O(1)不稳定简单选择排序O(N^2)O(1)不稳定堆排序O(N*logN)原创 2022-12-28 16:15:58 · 6705 阅读 · 23 评论 -
带你学懂数据结构中的八大排序(上)
排序(Sort)是初阶数据结构中的最后一块内容,所谓`排序`,就是通过某种手段,使目标数据变为递增或递减,`排序`有很多种方式:插入、选择、交换、归并、映射等等,本文会介绍这些方式下的详细实现方法,因篇幅较长,故分为上下文的形式介绍,本文是上半部分。原创 2022-12-26 14:50:28 · 6781 阅读 · 23 评论 -
听说你还不了解二叉树?赶紧进来轻松解决
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。简言之,二叉树是数据结构中非常重要的东西,在很多OJ试题和笔试题中,都会出现它的影子;至于高阶数据结构中的各种树,比如二叉搜索树、AVL树、红黑树、B树等都是基于二叉树的高阶树。总之,现在把普通二叉树学好了,对以后的学习是十分有帮助的。原创 2022-12-10 14:54:53 · 7395 阅读 · 58 评论 -
关于“堆”,看看这篇文章就够了(附堆的两种应用场景)
堆(heap)是计算机科学中一类特殊的数据结构的统称,堆通常是一个可以被看做一棵树的数组对象,因此堆常常是通过数组的形式来实现的,不过堆在实现时必须遵守两个原则:1.要么是大根堆(大堆) 2.要么是小根堆(小堆)。堆总是一棵完全二叉树,堆在实现时的基本功能有 入堆、出堆、查看堆顶元素及大小、判空 等,不过堆通常不单独使用,常常是作为一种辅助结构来处理现实中的问题,比如`堆排序`和`Top-K问题`原创 2022-12-08 10:46:50 · 8581 阅读 · 59 评论 -
数据结构 | 栈和队列
栈(Stack)又名堆栈,它是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表。队列(Queue)也是一种特殊的线性表,特殊之处在于它只允许在表的前端(Front)进行删除操作,而在表的后端(Rear)进行插入操作,和栈一样,队列`的部分操作也会受到限制。栈的特点是 先进后出(FILO),`队列` 则是 先进先出(FIFO),本文将会通过顺序存储的方式模拟实现 栈,以及链式存储的方式模拟实现 队列,两种数据结构都比较简单,一起来看看吧!原创 2022-11-24 09:28:42 · 1681 阅读 · 68 评论 -
数据结构 | 单链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素,链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置) ,元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。原创 2022-11-12 19:13:18 · 1962 阅读 · 69 评论 -
数据结构 | 顺序表
顺序表本质上就是数组,这也表明 `顺序表` 的基本要求是存储空间要连续,并且元素必须是连续存储。除了数组外,我们还可以使用堆区上开辟的空间,这也是可以实现 `顺序表` 的,下面一起来看看怎么实现吧!原创 2022-11-02 23:11:06 · 2151 阅读 · 65 评论 -
数据结构 | 时间复杂度与空间复杂度
复杂度是衡量一个算法好坏的标准,可以从时间和空间两个维度进行比较。可能你之前听说某个算法的时间复杂度是O(N),空间复杂度是O(1),知道这是一个还不错的算法,那么你知道这些复杂度是如何计算出来的吗?本文将会揭开它们神秘的面纱,让你拥有一把衡量算法好坏的度量衡。原创 2022-10-23 23:12:09 · 3169 阅读 · 86 评论