数据结构
文章平均质量分 91
通过对C的学习,掌握了一些基础的知识,接下来学习数据结构来增强我们的思考能力和解决问题的能力。
不 良
知足,上进,不负野心!!!
展开
-
【数据结构】二叉树
/堆中存储数据的类型//存储数据的数组//当前堆的最大容量int size;//堆中元素的个数}HP;//初始化函数//BTree.h}BTNode;//开辟空间if (newnode == NULL) //开辟失败直接结束程序exit(-1);//初始化为空//把二叉树结构连接起来//前序遍历return;//根 左子树 右子树//打印当前结点值//遍历左边结点//遍历右边结点//中序遍历return;原创 2023-09-17 11:58:39 · 305 阅读 · 2 评论 -
【数据结构】二叉搜索树
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树,二叉搜索树还有一个特征:按照中序走的话是一个升序的状态。所以二叉树搜索树可以叫做二叉排序树或二叉查找树……原创 2023-08-16 20:29:28 · 508 阅读 · 4 评论 -
【数据结构】八大排序详解
排序就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前(相同的数据,保证排序前后它们的相对位置不变),则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据……原创 2023-08-14 19:52:49 · 1896 阅读 · 11 评论 -
【数据结构】循环队列
队列又称为"先进先出(FIFO)"线性表:插入操作只能在队尾进行,删除操作只能在队首进行。而循环队列是队列的一种特殊形式,循环队列(也被称为环形队列)是一种线性数据结构,其操作表现基于先进先出原则,并且队尾被连接在队首之后以形成一个循环。循环队列固定大小,空间能够重复利用。循环队列可以用数组或者链表实现,那下面我们来分析一下哪种方式更好:当我们想使用链表实现时,假设我们想要开辟的队列长度为k = 4;front表示队头指针,rear表示队尾指针:由上图可知,当rear和front 都指向同一个位置时队列为空原创 2023-07-07 21:31:24 · 4157 阅读 · 7 评论 -
【数据结构】队列基本操作的实现(C语言)
队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 。入队列:进行插入操作的一端称为队尾 。出队列:进行删除操作的一端称为队头。队列入队、出队等基本操作的实现……原创 2022-11-17 15:49:20 · 352 阅读 · 35 评论 -
【数据结构】栈基本操作的实现(C语言)
栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底,栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做压栈/入栈/进栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶……原创 2022-11-15 16:32:45 · 539 阅读 · 14 评论 -
【数据结构】带头双向循环链表基本操作的实现(C语言)
带头双向循环链表尾插尾删、头插头删、插入某个数、查找和删除某个数等基本操作的实现……无头单向非循环链表结构简单,一般不会单独用来存数据。实际中更多的是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。而带头双向循环链表的结构较为复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表,虽然它的结构复杂但是因为结构优势用代码实现起来会变得简单原创 2022-11-14 09:30:42 · 476 阅读 · 24 评论 -
【数据结构】单链表(不带头结点)基本操作的实现(C语言)
通过对顺序表的学习,我们可以发现顺序表有以下几点缺陷:1.空间不够时需要扩容,扩容尤其是用realloc进行异地扩容时,是有一定代价的,其次还可能存在一定空间浪费。2.头部或者中间插入删除,需要挪动数据,效率低下。那我们可以对其所具有的缺陷进行优化:可以按需申请空间同时插入删除时不挪动数据。而单链表就符合这些优化所具有特点。但是我们要注意的是单链表具有这些优点并不代表链表就可以完全替代顺序表。链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的……原创 2022-11-12 21:09:57 · 992 阅读 · 26 评论 -
【数据结构】顺序表基本操作的实现(C语言)
线性表是n个具有相同特性的数据元素的有限序列,线性表是一种在实际中广泛使用的数据结构,常见的线性表有顺序表、链表、栈、队列、字符串……线性表在逻辑上是线性结构,也就是说是一条连续的直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式来存储。原创 2022-11-02 15:51:15 · 724 阅读 · 27 评论 -
【数据结构】彻底掌握时间复杂度和空间复杂度
数据结构体和算法的概念、算法的时间复杂度和算法的空间复杂度、用来表示算复杂度的大O渐进表示法的推导、以及关于时间复杂度和空间复杂度的一些例题的详细解析,充分认识和了解算法的时间复杂度和空间复杂度……原创 2022-10-29 18:27:06 · 1609 阅读 · 21 评论