![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初阶数据结构学习
文章平均质量分 85
对数据结构方面知识进行一定程度的系统学习
执笔者548
这个作者很懒,什么都没留下…
展开
-
初阶数据结构:二叉树(补充扩展)
当数据量很大时,且为乱序,数据无法一下全部加载到内存中,所以整体排序无法得出最大或最小的前K个数,那么,如何快速得出前K个最大/最小数。思路:我们先建堆,然后将堆顶(堆顶元素总是为最大或最小)的元素与尾部元素交换,size–,然后向下调整,直至堆为空。3. 思路:遇到与配对子树的根节点相同的结点即开始配对,直至遍历完整个树。等比数列求和,得需调整n - log(n + 1),时间复杂度为O(n)在前面的学习中,我们已经了解到,二叉树的结构由三部分组成。先于数据首部建一个大小为K的。思路:使用层序遍历,原创 2024-03-04 12:55:14 · 926 阅读 · 0 评论 -
初阶数据结构:二叉树
的数据结构,其有n个有限的节点构成,树结构具有层次性。它的形状颇像一颗颠倒的树,因此而被称为树。2. 我们从最后一个非叶子结点开始,向下调整,调整过后的子树都为堆,一直循环到根结点。对于树结构的初次学习,我们来重点学习二叉树这一结构。我们接下来进行这几个问题的学习。原创 2024-03-02 23:21:47 · 1115 阅读 · 0 评论 -
初阶数据结构:栈与队列的扩展补充
思路: 利用栈的后进先出特性来实现括号的匹配。原创 2024-03-01 20:49:37 · 417 阅读 · 0 评论 -
初阶数据结构:链表相关题目练习(补充)
思路依靠结论:一个结点从起始点,一个结点从相遇点(快慢指针相遇点),以同速行走(一次走一步),当他们再一次初次相遇时,此相遇结点即为入环点。思路:分析链表结构与结点所处的位置(是否为空链表,结点是否为头结点),分情况依次处理。注:单链表结构上存在一定缺陷,所以链表相关的题目一般都针对与单链表。原创 2024-02-29 20:13:46 · 627 阅读 · 0 评论 -
初阶数据结构:栈与队列
补充:栈的数据结构只对逻辑上有要求,必须满足元素的先进后出与栈顶,栈底的逻辑结构。因此,具体实现时使用数组或链表都可,数组的结构方便实现与适合栈。注:因为队列的删除操作为头删,所以此处采用头删更为方便的链式结构:链表。注:动态栈更具有学习与应用意义,以下内容都默认为动态栈。进行插入操作的一侧被称为。,进行删除操作的一侧被称为。的特殊线性表,其遵循着。原创 2024-03-01 11:54:48 · 826 阅读 · 0 评论 -
初阶数据结构:链表(补充:带头双向循环链表)
单链表在实现随机插入与删除上效率低,实现困难。其结构上不够优秀与完美,由此我们引入新的一种更优的链表结构。原创 2024-02-29 21:56:06 · 409 阅读 · 0 评论 -
初阶数据结构:时间与空间复杂度
计算机中各种各样基本类型的数据都在存储空间放置,它们的存储并不是杂乱无序的,各有各的放置方式,而此种数据间的组织排列与放置方式,我们就称之为数据的结构。编程的目的在于借助计算机来解决我们在生活工作中所遇到的各种问题,解决问题的方法步骤多种多样,繁琐不一。我们将现实生活中的事物信息问题等抽象成数据,那么解决问题的方式就变成了怎样处理这些数据从而得出想要结果的方法步骤,我们所要学习的算法即是寻求解决问题的最优与最简方法步骤。原创 2023-09-09 18:39:13 · 142 阅读 · 0 评论 -
初阶数据结构:链表
经过学习与练习,已经掌握了顺序表的相关知识并且能够自我实现。在这一过程中,通过对其结构的实现,发现顺序表的尾部插入删除数据效率很高,可是,在头部与随机插入的场景下效率低下而且存在扩容消耗等一些问题。而有这样一种数据结构可以很好的解决顺序表存在的这些问题,将琐碎的系统空间充分利用,任意位置的插入删除效率都很高。此种数据结构称为链表,接下来进行对其的学习。简介:链表,正如其名,存储其中的数据在物理上是离散的,各个数据间使用一条 “链子” 串联而成(记录下一元素地址的指针)。链表的具体结构存在数种,以是否带头。原创 2024-01-19 15:51:36 · 945 阅读 · 1 评论 -
初阶数据结构:顺序表相关题目练习
思路(时间复杂度 O(n^2) 空间复杂度 O(1)):遍历数组,若数组元素等于val,将数组后面元素整体前移覆盖,若不等于下标加1。思路(时间复杂度 O(n) 空间复杂度 O(n)):开辟等大小空间,将每个元素拷贝一份到新空间中,最后全部拷贝回去。注:(优化)当nums2中的元素插入完成,nums1没有插入完成无,需再进行插入操作,数组中数据本就有序。思路(时间复杂度 O(n) 空间复杂度 O(n)):开辟一块相同大小的空间,将原数组中。遍历完成后,将新空间中的数据再拷贝回原数组中。原创 2024-01-18 18:02:40 · 1051 阅读 · 0 评论 -
初阶数据结构:顺序表
简介:顺序表为在物理地址上连续的一种简单线性结构,其存储的数据元素一个连着一个。一般使用数组来进行其的实现,根据其存储空间是否可以动态增长又进一步分为,静态(定长数组)与动态(使用动态内存管理函数实现malloc)的顺序表。功能模块分析:定长数组/malloc动态开辟空间存储数据信息的记录变量,帮助数据的管理以上两部分构成的结构体。增(头插,尾插,随机插入):push_front,push_back,insert。原创 2024-01-17 19:52:39 · 452 阅读 · 1 评论 -
初阶数据结构:排序(学习笔记)
算法稳定性的判断标准:数据中相同数据在排序后,他们的相对位置是否变化。接下来,我们进行这些排序的学习。一次遍历选出最大值与最小值。原创 2024-03-05 12:57:40 · 878 阅读 · 0 评论