数据结构(c语言实现)
文章平均质量分 92
本专题是讲解的是c数据结构初级,适用于入门,后期高阶的数据结构将用c++实现。
Turing_Sheep
这个作者很懒,什么都没留下…
展开
-
第一章 时间复杂度和空间复杂度
本系列文章,将基于C语言实现一些初阶的数据结构,目的是帮助大家熟悉C语言的同时能够入门数据结构。原创 2022-10-28 09:10:58 · 2426 阅读 · 7 评论 -
第二章 动态顺序表的讲解与实现
C语言章节中所学的数组的概念,数组中的每一个元素都对应一个下标,而这些下标就会让这些数据“排好队”,即让彼此之间按顺序存储,这就是这些数据之间的联系。但是我们发现,我们的数组大小是无法动态改变的。但我们这里所说的顺序表则是一个能够动态改变内存的数组。原创 2022-10-26 14:37:25 · 428 阅读 · 4 评论 -
第三章 单向链表的讲解与实现
学习完顺序表之后,我们发现顺序表存在一定的缺陷和问题,尤为突出的问题就是插入和删除时时间的消耗以及开辟内存的时候空间的损耗。那么本章节所学习的链表则能有效地解决这些问题。链表:顾名思义就是将一个个数据连接起来,从而构成一个数据结构,下图中即为链表的逻辑结构与物理结构。每一个链表都是由一节节的链结组成的,我们称之为节点。其中,每一个节点都是由两部分组成的,存储数据的部分叫做数据域,存储地址的部分叫做指针域。指向第一个节点的指针称之为头指针。那么上述的单向链表如何实现呢?原创 2022-10-29 22:17:32 · 1404 阅读 · 14 评论 -
第四章 带头双向链表的讲解与实现
上一章节中,我们学习了无头指针的单向链表的逻辑和代码实现,但是我们发现这种单向结构在使用的时候是存在很大的弊端的,比如说我们无法通过中间的某个节点直接找到他前一个节点,只能从头开始遍历。这是非常低效地一种方式。为了解决链表的单向性,我们本章节将介绍一个双向链表。原创 2022-11-04 15:28:22 · 353 阅读 · 5 评论 -
第五章 栈的讲解与实现
前面的章节中,我们介绍了线性表中的动态顺序表、单向链表以及带头双向链表的实现,今天我们讲解两种其它的数据结构。原创 2022-11-09 14:33:52 · 570 阅读 · 6 评论 -
第六章 队列的讲解与实现
在上一章节中,我们了解到栈这种数据结构的特点是先进后出,那么今天所讲解的队列的特点则恰恰与之相反。队列这种数据结构的特点是:先进先出,后进后出。接下来我们将对其进行详细地讲解。原创 2022-11-10 20:31:43 · 614 阅读 · 4 评论 -
第七章 树的概念与分析
通过画图的方式帮助大家理解树及二叉树相关性质的证明。原创 2022-11-23 11:59:18 · 452 阅读 · 5 评论 -
第八章 堆的讲解与实现
通过画图的方式帮助大家直观地理解堆。原创 2022-11-23 20:25:19 · 451 阅读 · 8 评论 -
第九章 堆排序与TOPK问题
通过画图的方式帮助大家理解堆排序的模板,以及相关数学问题的证明。原创 2022-11-26 20:43:55 · 552 阅读 · 5 评论 -
第十章 二叉树的各种遍历
通过画图的方式帮助大家理解二叉树的遍历和应用。原创 2022-11-27 10:21:20 · 712 阅读 · 2 评论