
数据结构初阶(C语言)
文章平均质量分 90
初阶数据结构
炫酷的伊莉娜
C/C++领域新星创作者、阿里云专家博主、入围2023年博客之星。大学本科在读,计算机科学与技术专业,致力于C/C++方向的学习。一步一个脚印,查漏补缺,努力提升自己,记录学习过程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构】排序(插入、选择、交换、归并) -- 详解
因为步子迈的更大,减少插入排序的移动次数更多。比如10w个数据,直接插入排序复杂度为O(N^2),计算10w *10w=100亿次,而希尔排序复杂度为O(NlogN),计算10w *17 = 170w次。(2 ^17 约等于10w)。原创 2023-08-29 20:18:12 · 5716 阅读 · 4 评论 -
【数据结构】二叉树的链式结构的实现 -- 详解
前序遍历结果:1->2->3->4->5->6中序遍历结果:3->2->1->5->4->6后序遍历结果:3->2->5->6->4->1。原创 2023-08-17 08:17:17 · 499 阅读 · 1 评论 -
【数据结构】堆(Heap)
就可以建成一个 (大 / 小) 堆。我们把数组中的第一个元素看作是一个堆剩余的元素依次插入到这个堆中。这跟堆的插入接口原理相同,就是向上调整。如果堆的创建过程使用向上调整算法,那么每次插入一个新元素时都需要进行一次向上调整操作,以确保新插入的元素能够满足堆的性质。【时间复杂度】假设堆中已经有 n 个元素,那么堆的高度 h = log₂(n+1),在插入一个新元素的过程中,需要进行的向上调整操作次数为 h-1,则 h = log₂(n+1) - 1,原创 2023-08-14 11:38:05 · 5584 阅读 · 2 评论 -
【数据结构】树和二叉树
现实生活中的树:原创 2023-08-13 20:10:44 · 720 阅读 · 1 评论 -
【数据结构】队列(Queue)的实现 -- 详解
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有:进行操作的一端称为。:进行操作的一端称为。原创 2023-07-29 21:18:50 · 2263 阅读 · 0 评论 -
【数据结构】栈(Stack)的实现 -- 详解
一种特殊的线性表,其只允许在表尾进行插入和删除元素操作。。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。:栈的插入操作叫做进栈 / 压栈 / 入栈,。:栈的删除操作叫做出栈。。原创 2023-07-29 17:59:13 · 1736 阅读 · 0 评论 -
【数据结构】带头+双向+循环链表(DList)(增、删、查、改)详解
有和。一个是,指向其前一个节点;一个是,指向其后一个节点。原创 2023-07-28 21:35:19 · 1298 阅读 · 0 评论 -
【数据结构】无头+单向+非循环链表(SList)(增、删、查、改)详解
之前学习的顺序表是用一段依次存储数据元素的线性结构,而是一种非连续、非顺序的存储结构,数据元素的是通过链表中的次序实现的,可以实现更加灵活的动态内存管理。:之所以,是因为存在一些。原创 2023-07-28 11:52:30 · 624 阅读 · 0 评论 -
【数据结构】顺序表(SeqList)(增、删、查、改)详解
在数据结构中,如果要访问或者修改数据结构中的数据不要直接访问,而是应该去调用它的函数来访问和修改,这样会更加规范和安全,也更方便检查出是否出现了越界等错误情况。数组越界是不一定报错的,系统对越界的检查是设岗检查。越界读(读了不属于自己的数据),一般是检查不出来的,往往并不会造成内存奔溃。越界写(缓冲区溢出)如果是修改到标志位才会被检查出来,会造成数据破坏,严重会造成内存奔溃。(系统在数组末尾后设的有标志位,越界写时,恰好修改到标志位了,就会被检查出来)原创 2023-07-27 16:42:06 · 4009 阅读 · 0 评论