- 博客(93)
- 收藏
- 关注
原创 蓝桥杯STL stack
栈(stack)是一种遵循**后进先出(LIFO)**原则的线性数据结构,仅允许在栈顶进行插入和删除操作。STL(Standard Template Library)中的stack是一个容器适配器,基于其他容器(如deque或list)实现,默认使用deque作为底层容器。STL stack 是解决一类特定问题(如括号匹配、表达式求值、DFS)的高效工具。在蓝桥杯竞赛中,熟练掌握栈的操作和应用场景能够帮助快速解决相关问题。通过实际代码示例和解题思路的训练,可以提升对栈的理解和运用能力。
2025-08-14 15:18:28
333
原创 蓝桥杯STL queue
核心操作应用场景:BFS算法、任务调度、缓存管理等。性能:所有操作的时间复杂度均为 O(1)。通过真题练习可以深入理解队列的实际应用场景和优化方法。
2025-08-14 10:09:41
359
原创 蓝桥杯手算题和杂题简易做法
摘要:本文介绍了不同编程工具在解决数学问题时的优势对比。Excel适合表格计算和可视化,Python在大数运算、日期处理和字符串操作方面表现突出(如datetime库处理日期、自动处理大数不溢出),C++则在需要性能优化时更为适用(如快速幂模运算)。文章通过具体案例展示了各工具的应用场景,包括顺子日期统计、大数乘积尾零计算、三角回文数查找等,并比较了Python和C++在相同问题上的实现差异。最后还介绍了一些逻辑思维题的解题技巧,如裁纸刀问题和灌木修剪问题。
2025-08-12 15:37:48
309
原创 数据结构与算法:串的模式匹配算法
本文概述了三种常见的字符串模式匹配算法。朴素匹配算法通过逐个字符比较实现,时间复杂度O(m*n),简单但效率低。KMP算法利用next数组避免回溯,时间复杂度O(m+n),适合重复模式。Boyer-Moore算法采用坏字符和好后缀规则,平均效率高,适合大字符集。文章通过C语言代码示例展示了各算法的实现,并比较了它们的适用场景:朴素算法适合短文本,KMP适合重复模式,Boyer-Moore适合长模式串和大字符集。开发者可根据实际需求选择合适算法。
2025-08-05 10:37:47
588
原创 数据结构与算法:串的定义
本文介绍了串的基本概念与C语言实现方式。串是由零个或多个字符组成的有限序列,主要包括空串、子串等概念。文章详细讲解了两种存储结构:定长顺序存储(静态数组)和堆分配存储(动态数组),并给出了C语言实现代码,包括串赋值、比较和子串提取等基本操作。最后以DNA序列比对的朴素算法为例,展示了串的实际应用。串在文本处理、编译原理等领域有重要应用,需注意其与C语言原生字符串的区别。
2025-08-05 10:30:25
386
原创 数据结构与算法:队列的表示和操作的实现
本文详细介绍了队列数据结构的两种实现方式:循环队列和链式队列。循环队列通过数组实现,采用取模运算处理边界条件,具有固定空间但高效的特点;链式队列则通过链表实现,支持动态扩展。文章提供了完整的操作实现代码,包括初始化、入队、出队等基本操作,并分析了两种实现的时间复杂度。此外还介绍了双端队列(Deque)的扩展实现,以及队列在操作系统调度、BFS算法等场景的应用。最后总结了队列使用的最佳实践,包括边界处理、内存管理和线程安全等注意事项,为开发者选择合适队列实现提供了指导。
2025-07-31 09:42:21
620
原创 数据结构与算法:栈与递归
本文介绍了栈和递归的基本概念与实现方法。栈是一种后进先出(LIFO)的数据结构,支持压栈、弹栈等操作,可用数组实现。递归通过函数自我调用解决问题,需设置基线条件和递归条件。两者关系密切:递归本质使用系统调用栈存储上下文,也可手动用栈实现递归算法。文章对比了递归和栈实现的阶乘、斐波那契数列示例,并列举了栈在表达式求值、函数调用等场景的应用。最后指出栈适用于需反转顺序的场景,递归代码简洁但可能效率低,掌握两者转换能有效解决算法问题。
2025-07-30 09:55:41
403
原创 数据结构与算法:链栈的表示和实现
优点:动态内存管理,避免溢出;操作简单高效。缺点:每个节点额外指针占用空间;内存分配/释放可能引入开销。适用场景:数据规模未知或频繁变化的场景,如函数调用栈、表达式求值。通过以上内容,您应该能掌握链栈的核心原理和C语言实现。在实际应用中,确保正确处理内存管理以避免泄漏。如果您有疑问,欢迎继续讨论!
2025-07-30 09:45:09
1267
原创 数据结构与算法:栈的表示和操作的实现
本文介绍了栈的基本概念和两种实现方式。栈是一种后进先出(LIFO)的线性数据结构,支持入栈、出栈等基本操作。文章详细讲解了顺序栈(数组实现)和链栈(链表实现)的具体代码实现,包括初始化、入栈、出栈等核心操作。两种实现方式各有特点:顺序栈存取高效但空间固定,链栈空间灵活但需要额外指针开销。栈的典型应用包括括号匹配、表达式求值等场景,其LIFO特性特别适合处理需要"就近匹配"的问题。实际开发中应根据具体需求选择合适的实现方式。
2025-07-29 10:11:05
441
原创 数据结构与算法:栈和队列的定义和特点
本文对比了栈和队列两种基础数据结构。栈遵循LIFO(后进先出)原则,仅允许在栈顶进行插入/删除操作,时间复杂度为O(1),适用于函数调用、括号匹配等场景。队列采用FIFO(先进先出)规则,在队尾插入、队头删除,通过循环队列实现高效操作,常用于任务调度等场景。二者的核心区别在于操作原则(LIFO vs FIFO)和操作端点(单端 vs 双端),都是通过限制线性表的操作方式来实现特定数据管理需求。文中提供了C语言实现代码和典型应用示例。
2025-07-29 09:34:35
258
原创 数据结构与算法:存储密度
摘要:存储密度衡量数据结构中实际数据占用空间的比例,计算公式为数据大小/总大小。数组存储密度最高(接近1),因连续存储无额外开销;链表和二叉树因指针占用空间,密度较低(约0.2-0.5);基于数组的栈密度高,链表实现的队列密度低。选择时需权衡空间效率(数组)与操作灵活性(链表/树),C语言的sizeof可辅助计算。内存受限场景宜用数组,动态操作场景适合链表结构。
2025-07-27 09:41:25
1009
原创 Matlab学习笔记:自定义函数
MATLAB自定义函数学习摘要 MATLAB自定义函数通过function关键字定义,支持多输入/输出参数,需与.m文件同名。函数实现代码重用和模块化,局部变量避免命名冲突。关键技巧包括:使用nargin/nargout处理参数数量,error验证输入,匿名函数(@)简化临时计算,函数句柄传递函数引用。注意文件路径管理和局部/全局变量作用域,推荐添加Help文档注释。典型应用包括封装数学运算、数据处理及回调机制,调试时可使用fprintf输出中间值。建议从基础计算函数入手练习,逐步掌握参数验证和错误处理。
2025-07-26 15:14:14
1046
原创 数据结构与算法:单链表、循环链表、双向链表的比较
摘要:本文介绍了从双向链表到循环链表的演进过程,重点分析了循环链表的特性与实现。循环链表通过首尾相连形成环形结构,分为单向和双向两种类型,具有任意节点可遍历、边界处理统一等优势。文章详细展示了单向循环链表和双向循环链表的结构定义及基本操作(插入、删除节点)的实现代码,并比较了不同链表类型的性能特点。典型应用场景包括轮询调度、游戏开发和内存管理,最后以约瑟夫问题为例演示了循环链表的实际应用。
2025-07-26 10:46:25
314
原创 数据结构与算法:双向链表
摘要:双向链表是一种扩展的链表结构,每个节点包含数据域、前驱指针和后继指针,支持双向遍历。相比单向链表,双向链表提高了操作灵活性但增加了内存开销。文章详细介绍了双向链表的节点结构、基本操作(创建、插入、删除、遍历)以及循环双向链表的实现方法。循环双向链表通过首尾相连形成闭环,适用于特定场景。双向链表广泛应用于浏览器历史记录、音乐播放器等需要双向遍历的场合。理解双向链表及其变种有助于高效管理数据。
2025-07-26 10:30:57
431
原创 数据结构与算法:循环链表
循环链表通过尾节点指向头节点形成闭环,解决了单链表无法循环遍历的缺陷。其核心结构保持与单链表相同的节点定义,关键区别在于尾节点的next指针指向头节点。主要操作包括头插(O(n))、优化尾插(O(1))和删除(O(n)),需特别注意空链表和单节点情况的处理。经典应用包括约瑟夫环问题、轮询任务调度和循环缓冲区。相比单链表,循环链表牺牲少量存储空间换取了遍历效率的显著提升,特别适用于需要环形数据处理的场景。维护循环特性时需确保尾节点始终正确指向头节点。
2025-07-26 10:28:20
390
原创 C盘瘦身(超详细)
《程序员C盘救急指南:从基础清理到高阶优化》 本文针对开发者常见的C盘空间不足问题,提供系统化的解决方案。首先分析三大空间占用元凶:Windows系统文件(更新残留、休眠文件)、开发工具缓存(npm全局模块、Docker镜像)和用户数据(聊天文件、浏览器缓存)。基础清理建议使用cleanmgr命令、调整休眠设置和虚拟内存配置。专项优化包括迁移npm/yarn全局目录、Docker镜像存储位置和IDE缓存路径。高级技巧涵盖符号链接应用、Winsxs组件压缩和用户Profile迁移。文末提供自动化维护脚本和关键
2025-07-26 09:35:50
647
原创 Matlab学习笔记:结构基础
本文详细介绍了MATLAB中结构(structure)数据类型的基础知识。结构是一种灵活的数据容器,可存储不同类型的数据,通过命名字段组织信息。主要内容包括:1)结构的概念与优势;2)使用点运算符和struct函数创建结构;3)字段访问、修改及嵌套结构;4)常用操作函数如fieldnames、isfield等;5)通过学生管理系统和实验数据记录两个典型案例展示实际应用。结构体适合管理复杂数据,能提高代码可读性和维护性,是MATLAB数据处理的重要工具。
2025-07-25 16:27:27
672
1
原创 数据结构与算法:线性表的链式表示和实现(单链表)
本文详细介绍了单链表的定义、表示和基本操作实现。单链表由一系列包含数据和指针的节点组成,支持动态内存分配和高效插入删除操作。文章通过Python代码示例展示了创建链表、头插/尾插、指定位置插入、删除节点、查找和遍历等核心操作,并分析了各操作的时间复杂度。最后引出双向链表的概念,指出其在反向遍历和删除尾节点时的优势。全文采用通俗易懂的语言配合代码示例,帮助读者全面理解单链表这一基础数据结构。
2025-07-25 11:23:13
1064
原创 使用爬虫获取游戏的iframe地址
本文介绍了使用Python爬虫技术获取网页中游戏iframe地址的方法。主要内容包括:1. 准备工作:安装requests和BeautifulSoup库;2. 获取网页内容并解析HTML;3. 查找iframe元素并提取src属性;4. 处理动态加载内容的方案(使用Selenium);5. 提供完整代码示例和注意事项。文章强调要遵守网站使用条款,注意爬取频率,并针对静态和动态网页提供了不同的解决方案。该方法适用于获取游戏门户网站中嵌入的游戏iframe地址。
2025-07-24 19:57:49
856
原创 蓝桥杯省赛备赛规划指南
摘要:本文为蓝桥杯省赛参赛者提供6-7个月的备赛规划,分为四个阶段:基础巩固(1-2个月,掌握C++基础与简单算法)、算法深入(2个月,学习树/图/动态规划等核心内容)、实战训练(1个月,强化刷题与模拟测试)、冲刺阶段(1个月,真题模拟与查漏补缺)。建议每周投入10-15小时,重点使用《算法竞赛入门经典》教材和蓝桥杯/LeetCode等平台资源。规划强调循序渐进、坚持练习与定期模拟,帮助参赛者系统提升编程能力,为省赛做好充分准备。(149字)
2025-07-24 11:45:49
1664
原创 数据结构与算法:线性表的顺序表示和实现
摘要:本文介绍了线性表的顺序存储结构及其实现。顺序存储通过连续地址空间存储元素,具有随机访问(O(1))、存储密度高等特点。详细阐述了6种基本操作的实现:初始化(O(1))、取值(O(1))、查找(O(n))、插入(O(n))、删除(O(n))及其他辅助操作。顺序表适合查询频繁、元素数量稳定的场景,但不适合频繁插入删除。文章分析了各种操作的时间复杂度,并给出了扩容策略建议。存储结构通过数组实现,包含元素数据和长度属性,能直接计算元素位置。
2025-07-24 10:21:17
769
原创 Matlab学习笔记:逻辑基础
本文介绍了MATLAB中逻辑基础的核心内容,包括逻辑值的概念、关系运算符和逻辑运算的使用方法,以及逻辑索引和条件控制语句的应用。通过示例代码演示了如何利用逻辑操作进行数据筛选、条件判断和流程控制,并介绍了常用的逻辑函数如find、all和any等。这些知识点为处理复杂数据分析任务提供了基础,也为后续学习结构体等高级数据结构奠定了基础。逻辑操作是MATLAB编程实现智能决策的关键工具,掌握这些内容能显著提升数据处理效率和代码质量。
2025-07-23 11:46:10
729
原创 数据结构与算法:类C语言有关操作补充
本文介绍了类C语言中动态内存分配和参数传递的核心概念及其在数据结构中的应用。动态内存分配通过malloc、realloc和free函数实现运行时内存管理,适用于动态数组等结构;参数传递分为值传递(副本操作)和引用传递(指针操作),后者效率更高。文章通过书店和文件修改的类比解释概念,并提供了动态数组实现的完整代码示例,强调内存管理和参数传递在算法效率中的重要性,最后建议通过实践巩固这些基础知识点。
2025-07-23 10:02:22
777
原创 Matlab学习笔记:矩阵基础
在MATLAB中,矩阵是一个二维数组,元素可以是数字、变量或表达式。例如,一个2×2矩阵有两行两列。矩阵是MATLAB的基石,几乎所有数据处理都基于它。创建矩阵:通过直接输入、函数(如zerosrand)和拼接。索引和切片:使用行号、列号和冒号访问元素。运算:包括算术、元素级、转置和逆运算。函数sizesumreshape等常用工具。矩阵是MATLAB的核心,掌握它能让数据处理高效直观。实际应用中,矩阵用于图像处理、信号分析和机器学习等领域。
2025-07-22 15:46:31
1577
原创 Matlab学习笔记:界面使用
摘要:本文详细介绍了MATLAB界面的核心功能区域及使用方法。主要内容包括命令窗口的直接运算、工作区的变量管理、当前文件夹的路径操作、编辑器的脚本编写与调试、绘图窗口的数据可视化、应用程序选项卡的交互工具,以及实时编辑器的文档创建功能。文章提供了各模块的典型操作示例和实用技巧,如命令窗口的clc清屏、工作区的变量保存、编辑器的断点调试等,并推荐初学者从命令窗口操作开始逐步学习。最后还介绍了界面布局保存、快捷键等定制技巧,帮助用户高效使用MATLAB开发环境。
2025-07-22 14:46:55
603
原创 数据结构与算法:绪论
摘要:本章系统讲解数据结构与算法基础,首先通过图书馆书籍管理等生活案例解析数据结构(数据组织方式)和算法(问题解决步骤)的核心概念。重点分析算法效率指标,包括时间复杂度和空间复杂度,并给出C语言实现示例。介绍分治法、贪心法和动态规划等基础算法类型及其应用场景。最后以学生成绩表存储为例引出线性表概念,为后续学习顺序存储(数组)和链式存储(链表)奠定基础,强调算法效率分析在实际编程中的重要性。
2025-07-22 10:57:37
385
原创 算法与数据结构:线性表
C语言中线性表是数据结构的基础,主要有顺序表(数组)和链表两种实现方式。顺序表存储连续,支持快速随机访问(O(1)),但插入/删除需移动元素(O(n));链表通过指针连接,插入/删除高效(O(1)),但访问需遍历(O(n))。顺序表适合频繁访问场景(如数组),链表适合频繁增删场景(如文件系统)。理解线性表是学习栈、队列等更复杂结构的基础。
2025-07-22 10:48:45
542
原创 构造函数的调用规则
(1)如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造(此时会报错,因为当我们定义了一个有参构造函数就不在提供默认构造函数,所以会发生报错。(2)如果用户定义拷贝工造函数,c++不会再提供其他构造函数。此时我们看到p2的值仍然为18,说明类里有一个默认拷贝参数。默认情况下,c++编译器至少给一个类添加3个函数。3、默认拷贝构造函数,对属性进行值拷贝。1、默认构造函数(无参,函数体为空)2、默认析构函数(无参,函数体为空)如果我们把拷贝函数注释掉。
2024-12-17 16:07:56
287
原创 对象的初始化和清理
生活案例:1.在生活中我们购买电子产品时基本都会有出厂设置,在某一天我们不用的时候删除自己的数据保证安全。2.而c++中的面向对象来源于生活,每个对象夜都会有初始设置以及对象销毁前的清理数据的设置。
2024-12-17 15:13:55
333
【C语言程序设计】期末考试试卷解析:涵盖选择题、填空题、程序分析与编程题的详细解答及评分标准
2025-07-23
【C++编程教育】C++期末考试重点知识点汇总:面向过程与面向对象编程核心概念及应用
2025-07-23
C语言期末考试练习题解析与代码实例
2025-07-23
【C语言基础教育】C语言复习题库:涵盖基础语法、数据类型、表达式与语句、数组与指针、函数及文件操作练习题
2025-07-23
【批量下载】珠海科技学院《高等数学》2022-2023第二学期期末考试试卷-公众号或网站:三号教学楼等.zip
2024-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅