- 博客(16)
- 收藏
- 关注
原创 C++ 入门不迷路:缺省参数、函数重载与引用轻松拿捏
本文详细介绍了C++入门知识中的三个重要概念:缺省参数、函数重载和引用。在缺省参数部分,阐述了全缺省和半缺省的区别及使用规则;函数重载部分讲解了三种构成重载的情况和两种特殊场景;引用部分则从概念、特性、使用场景到与指针的关系进行了全面剖析,特别强调了const引用的权限问题。文章通过大量代码示例,深入浅出地说明了这些特性在实践中的应用,如数据结构中的参数传递和返回值优化。最后对比了指针和引用的异同,帮助读者更好地理解C++的这些核心特性。
2025-12-23 00:47:54
1413
41
原创 C++ 入门全指南:从发展史到第一个程序,命名空间 + 输入输出手把手讲
本文介绍了C++的基础知识,包括其发展历史、版本更新和学习建议。文章推荐了经典学习书籍,并展示了第一个C++程序示例。重点讲解了命名空间(namespace)的作用和用法,包括定义、嵌套使用和多文件合并等,以解决命名冲突问题。最后介绍了C++的输入输出流(cin/cout)及其优缺点,建议在大型项目中避免全局展开命名空间。文章为C++初学者提供了从C语言过渡的基础知识,
2025-12-12 01:13:14
943
47
原创 排序算法——从原理到实现全面解析,一文掌握8大常用排序算法
本文全面介绍了常见的排序算法,包括插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、交换排序(冒泡排序和快速排序)、归并排序以及非比较排序(计数排序)。文章详细讲解了每种算法的实现思路、代码示例和时间复杂度分析,并提供了完整的测试代码和性能对比。通过稳定性分析和复杂度比较,帮助读者理解不同排序算法的适用场景。最后附有完整的C语言实现代码,便于读者参考和实践。
2025-12-09 21:27:53
1568
42
原创 二叉树——精选题目,体验递归的暴力美学!
本文总结了8个二叉树相关算法题的解题思路与代码实现。主要包括:1.单值二叉树的判断;2.两棵树是否相同的比较;3.对称二叉树的检测;4.子树判断;5-7.二叉树的前序、中序、后序遍历实现;8.根据前序字符串构建二叉树并进行中序遍历。所有解法均采用递归方法,通过分解问题为子问题实现。核心思路包括:递归遍历节点、比较结构与值、分步构建二叉树等。每个题目都给出了详细的解题步骤和对应的代码实现,展示了二叉树问题的典型解法。
2025-12-04 00:59:12
1051
35
原创 二叉树——链式结构,来体验函数递归的暴力美学!
本文介绍了二叉树链式结构的实现方法,重点讲解了前序、中序、后序遍历的实现原理和代码示例。文章详细阐述了计算二叉树节点个数、叶子节点个数、第k层节点个数以及求二叉树高度/深度的递归算法。此外,还介绍了二叉树查找、销毁等基本操作,以及进阶的层序遍历和判断完全二叉树的方法,其中层序遍历通过队列实现。文章最后提供了判断完全二叉树的算法思路和实现代码。
2025-12-01 20:25:39
1376
21
原创 二叉树与堆:从概念到实战全解析
本文系统介绍了树和二叉树的基本概念与实现。首先阐述了树的概念、性质及相关术语,重点讲解了二叉树的结构特性与存储方式(顺序/链式)。在实现部分,详细分析了堆(顺序结构二叉树)的创建、调整算法(向上/向下)及核心操作(入堆/出堆),并通过堆排序和TOP-K问题展示了实际应用。文章最后提供了时间复杂度分析和完整代码实现,为后续学习二叉树链式结构奠定了基础。全文兼顾理论讲解与实践指导,适合数据结构学习者参考。
2025-11-27 21:20:53
1064
13
原创 栈和队列——精选题目
本文介绍了四个LeetCode题目关于栈和队列的实现方法: 有效的括号; 用队列实现栈; 用栈实现队列;设计循环队列 每个题目都提供了完整的数据结构定义和操作函数实现,包括初始化、销毁、入队/入栈、出队/出栈等核心操作。
2025-11-23 22:23:06
947
15
原创 数据结构_栈和队列
本文介绍了栈和队列两种线性数据结构。栈采用后进先出原则,通过数组实现入栈出栈操作;队列采用先进先出原则,通过链表实现队列入队出队操作。文章详细讲解了栈和队列的结构定义、初始化、销毁、插入删除等基本操作的代码实现,并提供了完整的C语言实现代码。栈的实现重点在于数组的动态扩容,队列的实现关键在于维护头尾指针。两种数据结构各有特点,栈适合处理函数调用等场景,队列则适用于任务调度等应用。文章最后还预告了后续将介绍相关算法题目。
2025-11-22 16:11:23
1593
5
原创 数据结构——双链表
本文详细介绍了双向链表(带头双向循环链表)的实现方法。首先对链表进行了分类说明,重点讲解了双向链表的代码实现。通过代码示例展示了双向链表的核心操作实现,包括节点定义、初始化、增删查改等13个关键功能。文章还提供了完整的代码文件(List.h、List.c、test.c)供参考,并分享了实现过程中的注意事项。最后指出双向链表虽然操作方便,但需根据实际需求权衡空间占用问题,合理选择数据结构。全文通过理论讲解与代码实践相结合的方式,系统地介绍了双向链表的实现与应用。
2025-11-21 20:09:05
958
14
原创 链表——精选题目
本文总结了9种链表题目的解决思路和代码实现:1.移除元素;2.反转链表;3.找中间节点;4.合并有序链表;5.链表分割;6.回文判断;7.相交链表;8.环形检测;9.入环节点。提供了力扣和牛客网题目链接及C++/C实现代码。
2025-11-20 19:37:34
1055
8
原创 数据结构——单链表
本文详细介绍了单链表的数据结构及代码实现。首先阐述了链表的特征和构成(数据域+指针域),并对比了与顺序表的差异。接着通过代码展示了单链表的完整实现,包括创建节点、打印链表、头插尾插、头删尾删、查找元素、指定位置插入删除等核心操作。重点讲解了需要二级指针的场景(如头插/头删)及边界条件处理。最后提供了完整的头文件、实现文件和测试代码,并预告后续将分享更具挑战性的链表题目。全文兼顾理论讲解与实践编码,适合数据结构学习者参考。
2025-11-16 20:47:26
1376
8
原创 顺序表——练习题
题目链接:27. 移除元素 - 力扣(LeetCode)题目描述给你一个数组nums和一个值val,你需要移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不等于val的元素。nums的其余元素和nums的大小并不重要。返回k。
2025-11-14 16:30:19
753
1
原创 数据结构——顺序表
本文系统介绍了顺序表的数据结构实现方法。首先定义了顺序表的基本概念,区分了静态和动态顺序表的区别。重点阐述了动态顺序表的实现过程,包括初始化、增删改查等核心功能:1)详细讲解了尾插、头插两种插入方式;2)介绍了尾删、头删等删除操作;3)实现了指定位置插入删除功能;4)提供了查找和扩容机制。文章采用模块化设计方法,将顺序表功能分解为多个函数实现,并给出了完整的代码示例。最后强调了顺序表作为线性表基础数据结构的重要性,为后续学习更复杂的链表等数据结构奠定基础。
2025-11-14 00:47:03
1375
14
原创 数据结构——算法复杂度:提升代码效率的关键
本文系统介绍了数据结构算法中的复杂度分析,包括时间复杂度和空间复杂度的概念、计算方法与应用实例。文章首先阐述了数据结构与算法的基本定义,然后重点讲解了复杂度分析的核心要点:使用大O表示法评估算法性能、常见时间复杂度类型(O(1)、O(n)、O(n^2)、O(logn)等)及递归函数的复杂度计算。通过典型例题演示了不同算法的复杂度推导过程,并针对轮转数组问题提出了三种时间复杂度的解决方案(O(n^2)、O(n)、O(1)),突出了优化算法效率的重要性。文章为系统性学习算法复杂度提供了清晰的逻辑框架和实用案例。
2025-11-10 20:05:45
928
7
原创 通关C语言:从Hello World的感动到征服“指针”的崩溃与成长
作为一名刚刚闯过C语言“新手村”的勇士,我既想总结知识,又想分享心情。下面这篇博客就是我为你准备的,希望能引起大佬们的共鸣,也能帮助到其他初学者。· #include: 包含头文件,让你能使用 printf 这样的函数。· int main(): 主函数,必须有且只能有一个。· printf: 你的第一个“好朋友”,负责输出。· return 0: 告诉操作系统“我运行得很好”。· 算术运算符: +, -, *, /, % · 关系运算符: >, <, ==, != (判断是否相等要用两个等号 ==
2025-11-08 20:15:49
624
5
原创 C语言入门必知:这些细节你掌握了吗?
本文分享了C语言学习初期容易忽略的基础知识。作者从自身学习经历出发,回顾了从零开始接触C语言的过程。文章重点整理了8个关键易忽略的知识点:1)库函数示例;2)32个关键字;3)ASCII码记忆技巧;4)转义字符;5)语句分类及控制语句;6)运算符优先级;7)占位符;8)赋值忽略符(*)的使用场景。以"hello world"代码为引,通过实用案例(如日期输入处理)说明基础概念的应用,帮助初学者避开常见误区,建议读者结合实践加深理解。
2025-11-08 19:35:23
877
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅