![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 81
时雨h
凌波不过横塘路,但目送、芳尘去。锦瑟华年谁与度?月桥花院,琐窗朱户,只有春知处。
飞云冉冉蘅皋暮,彩笔新题断肠句。试问闲情都几许?一川烟草,满城风絮,梅子黄时雨。
一名在校大学生,持续更新各类学习笔记和刷题(算法+软考),渴望与大家一起进步,希望能得到大家的关注!CSDN全栈领域作者,西安石油大学校园主理人,西安石油大学华为HSD校园开发者成员,大同学吧社区校园招聘主理人,阿里云社区“乘风者计划”专家博主认证。累计获得各类奖项20+,2023年年度CSDN博主排行111名,西安地区第12名,计算机设计大赛 蓝桥杯 数学建模等省奖5项,以码为梦,心向远方!
展开
-
【软考中级 软件设计师】数据结构
首先,需要将软件开发过程分解成一系列具体的活动或任务,如需求分析、系统设计、编码、测试等。同时明确这些活动之间的逻辑依赖关系,哪些任务必须在其他任务开始之前完成。原创 2024-05-24 19:55:55 · 920 阅读 · 0 评论 -
差分与前缀和
差分法是一种常用的处理区间问题的技巧,它通过将对区间的加减操作转化为对端点的操作,从而降低了时间复杂度。下面我来具体讲解一下差分法的应用步骤:1. **初始化差分数组**:首先,我们需要构造一个差分数组,长度比原数组多一个元素。假设原数组为 a,差分数组为 b,则初始化时 b 的第一个元素与 a 的第一个元素相同,即 b[1] = a[1]。2. **计算差分**:接下来,对于原数组中的每个元素(从第二个元素开始),利用差分式进行计算,即 b[i] = a[i] - a[i-1]。原创 2024-04-12 20:12:17 · 478 阅读 · 3 评论 -
枚举与尺取法 差分与前缀和
在算法竞赛中,枚举法(也称为暴力搜索或穷举法)是一种基本的解题策略,通常用于解决规模较小的问题或作为解题的起点。它的基本思想是通过遍历所有可能的解空间来寻找问题的解。下面我会用 C++ 代码来介绍枚举法的基本原理和实现方式。假设我们有一个简单的问题:找出 1 到 10 之间的所有偶数。我们可以使用枚举法来解决这个问题。```cpp// 使用循环遍历所有可能的解空间i <= 10;++i) {// 判断当前数是否为偶数// 输出偶数return 0;原创 2024-04-12 19:45:26 · 390 阅读 · 0 评论 -
蓝桥杯省赛冲刺(2)深度优先搜索
算法的基本思想是,从起始节点开始,不断地将当前节点的邻居节点入栈,然后选择一个邻居节点作为下一个要访问的节点,继续重复这个过程,直到没有未访问的邻居节点为止。在邻接矩阵中,图以二维数组的形式存储,其中图的节点表示行和列,而具体的连接关系表示为数组中的元素值。2. **连通性检测**:在某些问题中,需要判断图是否连通,即是否存在从一个节点到另一个节点的路径。你可以根据自己的需求和具体的图数据结构进行修改和扩展。2. **连通性检测**:DFS可用于检测图是否是连通的,即是否存在从一个节点到另一个节点的路径。原创 2024-04-11 15:56:22 · 921 阅读 · 10 评论 -
蓝桥杯省赛冲刺(1 补充)考试流程 做题技巧 手算题 杂题
原创 2024-04-07 23:18:01 · 472 阅读 · 2 评论 -
西安石油大学C++上机实验汇总
西安石油大学C++上机实验汇总原创 2024-01-25 22:30:56 · 2685 阅读 · 11 评论 -
leetcode1237. 找出给定方程的正整数解
这段代码是一个解决问题的解法,它通过遍历x和y的取值范围从1到1000,并调用`customfunction.f(x, y)`方法进行计算,判断计算结果是否等于目标值z。如果相等,将当前的x和y加入到结果集res中。这个解法适用于求解自定义函数的问题,通过遍历所有可能的参数组合来查找满足特定条件的解。在这个例子中,我们通过遍历x和y的取值范围来寻找使得customfunction.f(x, y)等于目标值z的参数组合。最后,将找到的参数组合存储在结果集res中,并返回res作为最终的解答。原创 2024-01-25 22:29:59 · 1252 阅读 · 0 评论 -
仓储管理系统 完整代码和详细代码注释
把货品信息表抽象成一个线性表,货品信息(包括ID、货品名、定价、数量等)作为线性表的一个元素,实现:按ID、货品名分别查找某货品信息(包括ID、货品名、定价、数量等);收录货品(如果货品在帐中已有,则只将总库存量增加。售出货品(如果帐中还有存货,则只将总库存量减少。如果库存为0,则提示售出失败);清除货品(删除该货品信息)、修改货品(ID、货品名和单价);排序(按定价排序--采用冒泡排序、按数量排序--采用快排)等功能。(2)编写一个测试主函数,测试所实现的功能。(1)分别采用单链表和顺序表实现相应功能。原创 2024-01-22 22:11:33 · 1060 阅读 · 3 评论 -
数据结构课程设计 仓储管理系统
仓储管理系统原创 2024-01-22 21:59:48 · 1416 阅读 · 17 评论 -
数据结构期末复习(六)查找算法
查找算法通常有两种常见的实现方式:顺序查找和二分查找。顺序查找也称为线性查找,是最简单的一种查找算法。它从数据集的起点开始逐个比较每个元素,直到找到目标元素或者搜索到数据集的末尾。二分查找也称为折半查找,是一种针对有序数据集合进行查找的算法。它利用了数据集的有序性,将数据集从中间分为两份,如果目标元素小于中间元素,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标元素或者数据集缩小到只有一个元素为止。其中,left 表示左边界,right 表示右边界,mid 表示中间位置。原创 2024-01-21 23:25:43 · 944 阅读 · 0 评论 -
数据结构期末复习(5)图
在数据结构中,图(Graph)是由节点(Vertex)和边(Edge)组成的一种非线性数据结构。图可以用来表示不同事物之间的关系,比如社交网络中的用户和好友关系、城市之间的道路网络等。图的基本组成部分包括:节点(Vertex):也称为顶点或点,表示图中的一个元素或对象。每个节点可以有一个或多个属性,比如名称、值等。边(Edge):表示两个节点之间的连接关系。边可以是有向的(指定连接的方向)或无向的(没有指定连接的方向),也可以带有权重(表示连接的权重或距离)。原创 2024-01-21 23:24:53 · 1067 阅读 · 2 评论 -
数据结构期末复习(4)串 树和二叉树
树是一种具有分层结构的数据结构,它由节点和边组成,每个节点可以有零个或多个子节点,除了根节点外,每个节点都有一个父节点。下面是树的一些基本概念:根节点(Root):树的顶部节点,没有父节点。内部节点(Internal Node):除了根节点和叶节点外,其他节点都是内部节点,即有至少一个子节点的节点。叶节点(Leaf):没有子节点的节点,也称为终端节点。子节点(Child):一个节点的直接下属节点。父节点(Parent):一个节点的直接上级节点。原创 2024-01-16 22:47:10 · 732 阅读 · 16 评论 -
数据结构期末复习(3)栈和队列
堆栈(stack)是一种基于后进先出(LIFO,Last In First Out)原则的数据结构。它模拟了现实生活中的堆栈,类似于一摞盘子或一堆书。堆栈有两个基本操作:入栈(push)和出栈(pop)。实际上,堆栈可以通过数组或链表来实现。使用数组实现的堆栈称为顺序堆栈(array-based stack)。在顺序堆栈中,数组的末尾被用作栈顶,每次入栈操作都会将元素放置在数组末尾,而出栈操作则会从数组末尾移除元素。使用链表实现的堆栈称为链式堆栈(linked stack)。原创 2024-01-01 23:08:12 · 1796 阅读 · 6 评论 -
数据结构期末复习(fengkao课堂)
树是一种具有分层结构的数据结构,它由节点和边组成,每个节点可以有零个或多个子节点,除了根节点外,每个节点都有一个父节点。下面是树的一些基本概念:根节点(Root):树的顶部节点,没有父节点。内部节点(Internal Node):除了根节点和叶节点外,其他节点都是内部节点,即有至少一个子节点的节点。叶节点(Leaf):没有子节点的节点,也称为终端节点。子节点(Child):一个节点的直接下属节点。父节点(Parent):一个节点的直接上级节点。原创 2024-01-01 23:06:21 · 1294 阅读 · 0 评论 -
数据结构期末复习(2)链表
链表(Linked List)是一种常见的数据结构,用于存储一系列具有相同类型的元素。链表由节点(Node)组成,每个节点包含两部分:数据域(存储元素值)和指针域(指向下一个节点)。通过节点之间的指针连接,形成一个链式结构。链表可以分为单向链表和双向链表两种类型。在单向链表中,每个节点只有一个指针,指向下一个节点;而在双向链表中,每个节点有两个指针,分别指向前一个节点和后一个节点。链表的优点是插入和删除操作的时间复杂度为O(1),而不受数据规模的影响。原创 2023-12-31 21:13:13 · 1295 阅读 · 5 评论 -
数据结构期末复习(1)数据结构和算法 线性表
数据结构是计算机科学中的一个重要概念,它指的是组织和存储数据的方式。数据结构可以帮助我们高效地操作和管理数据,使得计算机程序能够更加有效地执行各种任务。数据结构有很多种类,常见的包括数组、链表、栈、队列、树、图等。每种数据结构都有其特定的特点和适用场景。数组是一种线性数据结构,它由一系列相同类型的元素组成,通过索引来访问元素。数组的主要优点是可以快速随机访问元素,但插入和删除元素的操作相对较慢。链表也是一种线性数据结构,它由一系列节点组成,每个节点包含自身的数据和指向下一个节点的指针。原创 2023-12-31 21:13:07 · 1072 阅读 · 0 评论 -
代码随想录 学习记录(1)
如果还是学生,使用C++的话,可以按照题解中我的代码风格来,还是比较标准的。如果不是C++就自己选一种代码风格坚持下来, 如果已经工作的录友,就要融入团队的代码风格了,团队怎么写,自己就怎么来,毕竟不是一个人在战斗。就酱,以后我还会陆续分享,关于代码,求职,学习工作之类的内容。笔试的话,基本都是 ACM模式。面试的话,看情况,有的面试官会让你写一个函数实现就可以,此时就是核心代码模式。有的面试官会 给你一个编辑器,让你写完代码运行一下看看输出结果,此时就是ACM模式。原创 2023-12-26 14:44:37 · 2101 阅读 · 9 评论 -
数据结构期末考前复习
只能在栈顶进行插入和删除操作;最后插入的元素最先被删除,也就是先进后出的原则;栈顶指针指向栈顶元素,一般情况下,栈顶指针初始值为-1。链栈是一种基于链表实现的栈数据结构,它的每个节点都包含一个数据域和一个指向下一个节点的指针。链栈的底层实现是一个链表,因此可以使用指针来实现入栈、出栈等操作。初始化链栈:将栈顶指针初始化为空;判断链栈是否为空:栈顶指针为空则说明链栈为空;入栈:创建新节点,将其插入链表头部,更新栈顶指针;出栈:删除链表头部节点,更新栈顶指针;原创 2023-12-12 10:30:20 · 1999 阅读 · 13 评论 -
[数据启示录 01] 线性表及其实现
线性表是一种常见的数据结构,它是由一组数据元素组成的有序序列。线性表中的数据元素之间存在一对一的关系,即每个元素只有一个直接前驱和一个直接后继(除了第一个元素没有前驱,最后一个元素没有后继)。线性表中的元素可以是任意类型,例如整数、字符、对象等。元素之间的顺序是确定的,每个元素都有一个唯一的位置。可以根据元素在线性表中的位置进行访问和操作。除第一个元素和最后一个元素外,其他元素都有前驱和后继。线性表可以用多种方式实现,常见的包括数组、链表和向量等。原创 2023-12-09 14:51:01 · 1386 阅读 · 8 评论 -
[数据启示录 02] 堆栈
堆栈(stack)是一种基于后进先出(LIFO,Last In First Out)原则的数据结构。它模拟了现实生活中的堆栈,类似于一摞盘子或一堆书。堆栈有两个基本操作:入栈(push)和出栈(pop)。实际上,堆栈可以通过数组或链表来实现。使用数组实现的堆栈称为顺序堆栈(array-based stack)。在顺序堆栈中,数组的末尾被用作栈顶,每次入栈操作都会将元素放置在数组末尾,而出栈操作则会从数组末尾移除元素。使用链表实现的堆栈称为链式堆栈(linked stack)。原创 2023-12-09 14:50:42 · 978 阅读 · 0 评论 -
上机实验四 哈希表设计 西安石油大学数据结构
2)编写一个测试主函数:输入10个学生的姓名拼音(即10个字符串)存入数组,然后对该姓名数组初始化(即将各字符串中字符的ASCII码相加,形成每个姓名的关键字),最后输出哈希表中各数据元素。编写一个测试主函数:输入10个学生的姓名拼音(即10个字符串)存入数组,然后对该姓名数组初始化(即将各字符串中字符的ASCII码相加,形成每个姓名的关键字),最后输出哈希表中各数据元素。程序定义了一个向哈希表中插入节点的函数,该函数首先计算出输入学生姓名的哈希值,然后将学生信息存储在哈希表中对应的桶中。原创 2023-12-04 16:35:11 · 2680 阅读 · 13 评论 -
树和森林 查找
在每次迭代中,函数计算中间点的位置和目标函数在中间点处的值fmid,然后根据fmid的正负来确定下一步的查找区间。在黄金分割查找中,我们首先将查找区间划分为两个部分,其中一个部分的长度为黄金比例(约为0.618)与另一个部分的长度之和。在数组实现中,每个树都存储在一个连续的内存块中,而树的节点则按照树的深度(从根节点到叶节点的路径长度)排列。在数组实现中,每个树都存储在一个连续的内存块中,而树的节点则按照树的深度(从根节点到叶节点的路径长度)排列。在数据结构中,森林是一个由多个不相交的树组成的集合。原创 2023-11-15 16:15:33 · 299 阅读 · 3 评论 -
浙江大学数据结构陈越 第一讲 数据结构和算法
数据结构是计算机科学中用来组织和存储数据的方式。它可以理解为一种组织数据的方式,能够有效地管理和操作数据,以及提供对数据进行存储、检索、更新和删除等操作的方法。常见的数据结构包括数组、链表、栈、队列、树和图等,它们各自适用于不同的应用场景,并且有着不同的特点和操作方式。数据结构的选择对于解决特定的计算问题非常重要,合适的数据结构能够提高算法的效率和性能。原创 2023-11-15 16:15:03 · 687 阅读 · 18 评论 -
上机实验四 图的最小生成树算法设计 西安石油大学数据结构
上机实验四 图的最小生成树算法设计 西安石油大学数据结构原创 2023-11-14 09:31:12 · 1103 阅读 · 5 评论 -
上机实验三 图的最小生成树算法设计 西安石油大学数据结构
上机实验三 图的最小生成树算法设计 西安石油大学数据结构原创 2023-11-14 09:29:38 · 504 阅读 · 0 评论 -
leetcode 275 H指数 2
原创 2023-10-31 09:01:02 · 238 阅读 · 2 评论 -
LeetCode 1465. 切割后面积最大的蛋糕
这个算法的时间复杂度是O(nlogn),其中n是切割位置的数量。在排序时,使用了额外的O(n)的空间来存储排序后的数组。因此,这个算法的空间复杂度也是O(n)。这个算法的优点是,它通过排序和遍历操作,直接得到了切割后矩形的最大宽度和最大高度,从而避免了复杂的动态规划计算。同时,它也使用了取模运算来防止结果溢出,从而保证了答案的正确性。需要注意的是,这个算法假设切割位置的信息已经按照顺序给出了,并且没有考虑切割位置之间的间隔。原创 2023-10-27 19:34:47 · 258 阅读 · 4 评论 -
leetcode 2520 统计能整除数字的位数
原创 2023-10-26 21:16:09 · 165 阅读 · 4 评论 -
leetcode1155骰子的面之和
原创 2023-10-24 17:38:43 · 124 阅读 · 3 评论 -
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解原创 2023-10-22 16:42:41 · 755 阅读 · 33 评论 -
上机实验二 设计单循环链表 西安石油大学数据结构
在链表中间和尾部插入节点时,在找到插入位置的前一个节点后,将新节点的指针指向原位置的节点,再将前一个节点的指针指向新节点;删除节点时,首先找到要删除节点的前一个节点,将前一个节点的指针指向要删除节点的下一个节点,然后释放要删除节点的内存空间;获取节点值时,找到指定位置的节点,返回其数据域的值。链表数据结构的基本操作,包括初始化链表、获取链表元素个数、在指定位置插入节点、删除指定位置的节点、获取指定位置节点的值以及打印链表中的元素。取链表头结点的数据,取链表中间某个节点的数据,取链表尾节点的数据。原创 2023-10-12 23:30:00 · 1618 阅读 · 6 评论 -
上机实验一 顺序表的基本操作和简单程序 西安石油大学数据结构
题目:设计一个有序顺序表,实现以下操作:1.将元素x插入表中并保持有序;2.查找值为x的元素,若找到则将其删除;3.输出表中所有元素。要求:对上述每个操作各设计为一个子函数,并设计一个主函数调用各子函数,以验证所设计的有序顺序表的正确性。原创 2023-10-01 13:50:32 · 459 阅读 · 0 评论 -
栈(Stack)和队列(Queue)
栈是一种后进先出(Last-In-First-Out,LIFO)的数据结构,类似于把元素堆在一起形成的一堆物体,最后添加的元素首先被取出,而最早添加的元素则最后被取出。类比于现实生活中的例子,可以想象成堆放在一起的盘子,只能从最上面取走或者放置。队列是一种先进先出(First-In-First-Out,FIFO)的数据结构,类似于排队等候的人群,最早添加的元素首先被取出,而最后添加的元素则最后被取出。类比于现实生活中的例子,可以想象成加入队列的人们,只有排在前面的人才能先离开队列。原创 2023-09-27 23:00:50 · 1239 阅读 · 0 评论 -
数据结构 第一章作业 绪论 西安石油大学
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。:是组成数据元素的、有独立含义的、不可分割的最小单位。解释:数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合。是性质相同的数据元素的集合,是数据的一个子集。原创 2023-09-19 20:53:13 · 612 阅读 · 1 评论 -
数据结构 第二章作业 线性表 西安石油大学
线性表是一种常见的数据结构,它是由一组按照顺序排列的元素组成的数据集合。线性表中的每个元素都有一个唯一的前驱元素和一个唯一的后继元素,除了第一个元素没有前驱元素,最后一个元素没有后继元素。元素之间的顺序是确定的,元素之间的关系是一对一的。可以通过下标或位置来访问线性表中的元素。线性表的长度可以是固定的也可以是可变的。常见的线性表有两种实现方式:顺序表和链表。顺序表:顺序表是使用一段连续的内存空间存储线性表中的元素。在顺序表中,元素在内存中的物理地址是按照其逻辑顺序依次排列的。原创 2023-09-18 22:38:11 · 779 阅读 · 1 评论