
数据结构
文章平均质量分 83
数据结构是计算机中用来存储和组织数据的方式。它可以分为线性结构和非线性结构。其中线性结构包括数组、栈、队列和链表等,它们的数据元素之间存在一种线性关系;非线性结构包括树、图等,数据元素之间不存在固定的先后关系。
Tech行者
自由工作职业者,可指导课程设计、毕业设计、数学分析、数学建模等,性价比超高,VX:JSJ2548359290,两次获得国家奖学金-中国电信奖学金-国家励志奖学金选手,磨练中,拿过几个小奖,努力在世间挣扎的菜鸟,分享代码的乐趣,立志以专业之学,报社会之需!!!
展开
-
C++学习笔记——用C++实现树(区别于C)
树是一种非常重要的数据结构,它在计算机科学中的应用非常广泛。在本篇博客中,我们将介绍树的基本概念和C++中如何实现树。原创 2024-01-14 23:25:50 · 2278 阅读 · 1 评论 -
数据结构1-顺序表的基础实现
/静态数组#define MaxSize 10 //定义最大长度int length;}Sqlist;可以看到,我们使用了#define关键字定义了顺序表的最大长度MaxSize,这样可以方便地在代码中引用。然后,我们定义了一个结构体类型Sqlistdata和length,分别表示存储数据元素的数组和当前顺序表中元素的个数。原创 2023-06-03 16:11:17 · 1028 阅读 · 3 评论 -
<呕心沥血>一文总结数据结构八大排序(持续更新)
八大排序指的是常用的八种排序算法,分别为冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和计数排序。这些排序算法都有其各自的实现思路和特点,对于不同的数据类型和数据量大小均有适合的排序算法。掌握这些排序算法有助于提高编程技能,并能在实际应用中选取更加有效的算法来进行排序操作原创 2023-04-12 21:10:14 · 471 阅读 · 0 评论 -
数据结构-快速排序
快速排序是一种基于分治思想的排序算法。其基本思想是选取一个基准值,通过一趟排序将待排序列分成两个部分,其中左半部分都小于基准值,右半部分都大于基准值,然后对左右两部分分别递归地进行快速排序,最终得到有序序列。快速排序具有以下优点:时间复杂度较低:平均时间复杂度为 O(nlogn),在实践中表现良好,较适合大规模数据的排序。空间复杂度较低:空间复杂度为 O(logn),不需要额外的存储空间,能够节省内存。实现简单:快速排序的实现比较简单,易于理解和掌握。原创 2023-04-10 20:33:52 · 324 阅读 · 0 评论 -
数据结构-希尔排序
希尔排序(Shell Sort)是插入排序的一种改进版算法,也称为缩小增量排序(Diminishing Increment Sort)。希尔排序的基本思想是把待排序的元素按一定间隔分成若干个组,在每个组内进行插入排序,然后逐步缩小间隔间隔,直到间隔为1,最后对整个序列进行插入排序。因为插入排序在元素基本有序时效率较高,而希尔排序就是利用了这个特点。原创 2023-04-09 19:43:52 · 483 阅读 · 0 评论 -
数据结构二叉树基础oj练习2(源码+算法思路)
数据结构二叉树基础oj练习2(源码+算法思路)1.另一棵树的子树2.二叉树遍历原创 2023-04-08 14:43:09 · 262 阅读 · 0 评论 -
数据结构二叉树基础oj练习1(源码+算法思路)
1.单值二叉树2.相同的树3. 二叉树的前序遍历1.单值二叉树1.单值二叉树如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回false。力扣这段代码的作用是判断给定的二叉树是否是单值二叉树,返回 true 或 false。该实现使用了递归的方法。具体来说,该函数的实现思路为:如果当前节点为空,则返回 true。判断左子树的值是否与当前节点的值相等,如果不相等则返回 false。判断右子树的值是否与当前节点的值相等原创 2023-04-07 22:30:58 · 501 阅读 · 1 评论 -
数据结构-二叉树(前中后层序遍历-代码实现)
二叉树的遍历方式包括前序遍历、中序遍历、后序遍历和层序遍历,这四种遍历方式分别从不同角度对二叉树进行遍历,可以用于寻找特定节点、比较树的结构等。前序遍历前序遍历按照根节点-左子树-右子树的顺序遍历二叉树。具体实现时,先输出当前节点的值,然后递归遍历左子树,最后递归遍历右子树。2.中序遍历中序遍历按照左子树-根节点-右子树的顺序遍历二叉树。具体实现时,先递归遍历左子树,然后输出当前节点的值,最后递归遍历右子树。3.后序遍历后序遍历按照左子树-右子树-根节点的顺序遍历二叉树。原创 2023-04-06 22:40:23 · 467 阅读 · 0 评论 -
数据结构-堆排序问题
堆排序(Heap Sort)是一种利用堆数据结构,实现的比较高效的排序算法,它的时间复杂度为O(nlogn)。堆排序的基本思想可以概括为下面三个步骤:原创 2023-04-06 21:01:53 · 400 阅读 · 0 评论 -
数据结构-二叉树的结构与实现(堆)
都是常见的数据结构,堆可以使用二叉树来实现。具体来说,堆一般采用完全二叉树来表示,而且还需要满足堆(大根堆或小根堆)的性质,其中大根堆要求节点的值都不小于其左右子节点的值,小根堆则要求节点的值都不大于其左右子节点的值。因此,堆和二叉树之间存在紧密的联系。在堆中,一个节点的父节点和子节点可以通过数组下标和基本的算术运算轻松地计算得到,而不需要进行复杂的指针操作。同时,堆中的节点也可以通过二叉树的方式来表示。在堆排序这种常见的算法中,堆被广泛地应用,它使用了二叉树的特性,以及堆性质的特点,使得排序算法能够高效地原创 2023-04-05 21:27:03 · 403 阅读 · 0 评论 -
暴击一棵树——二叉树入门一(入门基础概念)
暴击一棵树!二叉树入门一(详细介绍+源码分享+经典例题)树(Tree)是一种非常常见的数据结构,它是由若干个节点(Node)组成的层次结构,其中一个节点作为根节点(Root),其他节点按照一定规则分层连接。每个节点可以有任意多个子节点,也可以没有子节点。在这个例子中,节点 A 是根节点,B、C、D 是 A 的子节点;B 又有 E、F 两个子节点,D 又有 G、H、I 三个子节点。树的主要应用场景包括:文件系统、目录结构、程序执行流程、HTML/XML 文档对象模型等等。原创 2023-04-04 21:37:40 · 515 阅读 · 1 评论 -
栈与队列的经典问题(万字详细讲解+基础回顾+括号匹配\用队列实现栈\用栈实现队列\设计循环队列-用C语言描述)
栈与队列的经典问题(详细讲解+基础回顾+括号匹配\用队列实现栈\用栈实现队列\设计循环队列)原创 2023-04-03 22:25:54 · 731 阅读 · 0 评论 -
数据结构-利用链表实现队(包含源码+详细解析)
这是一个 C 语言实现的队列数据结构,包括队列的初始化、销毁、插入、删除以及查找等操作。具体来说,该队列基于链表实现,通过 QNode 结构体表示链表节点,通过 Queue 结构体表示队列,其中 head 指向队头节点,tail 指向队尾节点,size 表示队列大小。对于每个操作,都进行了相应的安全性检查,确保参数不为 NULL,队列不为空等。因此,该队列具有较高的鲁棒性和可用性。代码文件下载,欢迎访问,有问题私信小蒋小蒋同学的优快云: 用于优快云文章中的代码分享。原创 2023-04-03 14:48:23 · 1221 阅读 · 0 评论 -
数据结构-利用动态数组实现栈
动态数组是指在程序运行过程中可以根据需要动态地增加或缩小容量的一种数组结构。动态数组实现的栈结构相比于静态数组或链表的实现方式具有灵活性和高效性,因此被广泛应用在计算机科学的诸多领域中。本篇博客将详细介绍动态数组实现的栈结构的细节。原创 2023-04-02 20:06:11 · 377 阅读 · 1 评论 -
数据结构第一章绪论的总结
数据结构的基本概念;耿国华老师;数据结构;数据结构基础原创 2022-08-09 19:49:42 · 267 阅读 · 1 评论