
初阶数据结构
文章平均质量分 82
用C语言实现初阶的数据结构,如顺序表、链表、栈、队列等
dbln
这个作者很懒,什么都没留下…
展开
-
二叉树基础OJ题
前面我们学习了树与二叉树的相关知识,了解了它的一些基本的相关操作。那么今天我们就来练习一下二叉树的一些相关的OJ题。废话少说,我们直接开始吧。原创 2023-07-14 08:00:00 · 628 阅读 · 2 评论 -
数据结构——链表
顺序表的问题及思考1. 中间/头部的插入删除,时间复杂度为O(N)2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。基于以上的问题,我们可以考虑使用链表的结构来看看。链表和顺序表相比,对于空间的利用率更优,插入删除的效率更优,但是顺序表可以通过下标随机访问任意位置的元素,而链表则不能。原创 2023-06-26 09:00:00 · 629 阅读 · 2 评论 -
树与二叉树
目录一、树的概念二、二叉树概念及结构三、二叉树链式结构的实现四、二叉树的相关操作实现(均以(三)中创建的二叉树为例)1、树:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。* 有一个特殊的结点,称为根结点,根节点没有前驱结点。 2、树的相关概念:(部分)* 节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:D的为3* 叶节点或终端节点:度为0的节点称为叶节点; 如上图:F、G、H、I、J节点原创 2023-05-12 20:24:30 · 825 阅读 · 3 评论 -
排序——归并排序
前面我们讲了插入排序,选择排序以及交换排序,感兴趣的话可以看看下面的链接插入排序交换排序选择排序那么今天我们来讲一讲归并排序1、归并的缺点在于需要O(N)的空间复杂度,归并排序更多的是解决在磁盘中的外排序问题。2、时间复杂度:O(N*logN)3、空间复杂度:O(N)4、稳定性:稳定。原创 2023-06-06 00:00:00 · 637 阅读 · 1 评论 -
数据结构之栈和队列
栈独特的结构特性使其在实际应用中具有非常大的作用。栈的引入去除了普通顺序表的复杂细节,使人们使用起来更加方便。现在的许多高级语言,比如C++, java等都有对栈结构的封装,可以直接使用,不需要自己实现,大大提高了效率。原创 2023-05-26 21:18:59 · 627 阅读 · 2 评论 -
排序——选择排序
前面我们讲了直接插入排序和希尔排序这两种插入排序,如果还有什么问题就请点击下面的链接插入排序那么今天我们就来讲一讲选择排序。原创 2023-05-26 17:32:04 · 795 阅读 · 1 评论 -
栈与队列相关OJ题
前面学习了栈与队列的相关知识,及其基本实现。今天我们就来看看他们在题目中的应用吧。话不多说,那我们就直接开始吧。原创 2023-06-12 08:00:00 · 675 阅读 · 0 评论 -
数据结构——堆
前面我们学习了二叉树,知道了二叉树一般用链式存储,但是还有一种存储方式是顺序存储,而普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储。原创 2023-05-26 16:54:17 · 621 阅读 · 1 评论 -
排序——交换排序
前面我们讲了直接插入排序和希尔排序这两种插入排序,以及直接选择排序和堆排序这两种选择排序。如果还有什么问题就请点击下面的链接插入排序选择排序那么今天我们就来讲一讲交换排序。原创 2023-05-14 21:36:54 · 2452 阅读 · 4 评论 -
排序——计数排序
1、计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。1、时间复杂度:O(MAX(n,range))1、空间复杂度:O(range)注:计数排序只适合整数元素,如果遇到浮点型或字符型就没法用它了。并且如果数据范围太大也没法使用它。因此它也有非常大的局限性。原创 2023-05-28 12:33:21 · 1104 阅读 · 0 评论 -
排序——插入排序
array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j]把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。时,数组已经接近有序的了,这样就会很快。原创 2023-05-13 11:41:12 · 735 阅读 · 4 评论