自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萌新的博客

欢迎你的驻足

  • 博客(42)
  • 收藏
  • 关注

原创 【C++深学日志】C++“类”的完全指南--从基础到实践(一)

本文以汽车设计蓝图类比,生动介绍了C++中类的概念。类作为对象的"蓝图",定义了成员变量(属性)和成员函数(方法),通过访问限定符(public/private/protected)实现封装与数据抽象。类内定义成员函数会被隐式当作内联函数,类外定义需使用作用域解析运算符(::)指明类域。特别强调了静态成员变量必须在类外定义初始化的特性,这是由C++的"一次定义规则"和静态变量的全局生命周期决定的。文章采用循序渐进的方式,通过代码示例详细讲解了类的定义、访问控制、作用域

2025-09-21 17:32:11 1837 45

原创 【C++深学日志】C++编程利器:缺省参数、函数重载、引用详解

本文深入探讨C++三大核心特性:缺省参数、函数重载和引用。缺省参数通过为函数参数设置默认值,提升代码灵活性;函数重载允许同名函数根据参数类型/数量自动匹配,增强可读性;引用作为变量别名,优化参数传递效率。文章详细解析了全/半缺省参数、重载规则(包括const形参处理)、引用特性及初始化要求,并通过栈初始化等实例演示实际应用。这些特性共同构成了C++超越C语言的关键优势,为抽象编程和多范式设计奠定基础。

2025-09-14 18:18:08 1743 39

原创 【C++深学日志】从0开始的C++生活

C++学习之旅:从入门到精通的探索 本文介绍了C++语言的发展历程和基础入门知识。C++起源于1979年,历经前标准阶段、经典时代到现代C++的演变,最新版本C++20引入了模块、协程等革命性特性。文章通过示例展示了C++基本语法,重点讲解了命名空间的概念及其三种使用方法,帮助解决命名冲突问题。最后介绍了C++的输入输出机制,包括cin、cout等标准流对象的使用,为初学者提供了系统学习C++的起点。

2025-09-11 21:15:51 6252 26

原创 【数据结构】从基础到实战:全面解析归并排序与计数排序

本文介绍了两种高效的排序算法:归并排序和计数排序。归并排序采用分治策略,通过递归将数组分解为有序子序列再两两合并,时间复杂度为O(nlogn)。文章通过高考排名案例生动讲解其原理,并提供了C语言实现代码和复杂度分析。计数排序则利用元素范围有限的特性,通过统计元素出现次数实现线性O(n)排序,适合特定数据场景。两种算法各具特点:归并排序通用稳定,计数排序在数据范围较小时效率更高。文章以通俗易懂的方式呈现算法核心思想,帮助读者理解不同排序方法的适用场景。

2025-08-24 20:11:38 1829 29

原创 从冒泡到快速排序:探索经典排序算法的奥秘(二)

在本篇博客中,我们通过一个生动的生活实例——整理书架上的书籍,来介绍了选择排序(Selection Sort)算法的工作原理及其应用场景。选择排序是一种简单直观的排序算法,其基本思想是:从未排序的部分中选择最小(或最大)的元素,并将其放到已排序部分的末尾。通过这一过程的反复进行,最终实现整个序列的有序。

2025-08-16 20:29:16 1536 17

原创 【数据结构】从冒泡到快速排序:探索经典排序算法的奥秘

这篇文章介绍了三种基础排序算法:冒泡排序、插入排序和希尔排序。作者以生动易懂的方式讲解了每种算法的实现原理、代码示例和时间复杂度分析。冒泡排序通过相邻元素比较交换实现排序,时间复杂度为O(n²);插入排序模拟理牌过程逐个插入有序序列,最优情况下可达O(n);希尔排序是插入排序的改进版,通过分组排序提高效率。文章强调数据结构学习的趣味性,旨在帮助读者以愉悦心情掌握这些基础算法。每种算法都配有实现代码和效率分析,适合编程初学者理解排序算法的基本原理和应用场景。

2025-07-12 19:57:10 100 13

原创 【数据结构】二叉树:一场关于节点与遍历的艺术之旅

前面我们说过顺序存储结构一般只适用于完全二叉树,既然顺序存储适应性不强,我们既要考虑链式存储结构了。二叉树每个节点最多有两个孩子,所以为它设计一个数据域和两个指针域是比较自然的想法,我们称这样的链表为二叉链表。

2024-06-12 22:01:04 2563 59

原创 【数据结构】穿梭在二叉树的时间隧道:顺序存储的实现

之前我们谈过了树的存储结构,并且谈到了顺序存储结构对树这种一对多的关系结构实现起来还是比较困难的。但二叉树是一种特殊的树,由于二叉树的特殊性,使得它可以使用顺序存储结构来实现,二叉树的顺序存储结构就是使用一维数组存储二叉树中的节点,并且节点的存储位置,也就是数组的下标要能体现出来节点之间的逻辑关系

2024-06-04 22:12:09 3421 52

原创 【数据结构】二叉树:简约和复杂的交织之美

二叉树是n(n>=0)个节点的有限集合,该集合或者为空集合(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。在下面的图中,左边的就是一棵二叉树,而右边的因为它的F节点有3个子节点,所以它不是二叉树。

2024-06-01 22:00:08 2685 55

原创 【数据结构】探索树中的奇妙世界

之前我们一直谈的都是一对一的线性结构,可现实中,还是有很多一对多的情况需要处理,所以我们需要研究这种一对多的数据结构—“树”,考虑它的各种特性,来解决我们在编程中遇到的相关问题。树是一种非线性的数据结构,它是由n(n>=0)个节点组成的一个具有层次关系的集合,把它叫做树是因为它看起来像是一棵倒挂的树,也就是说它根是向上的,叶子是向下的。

2024-05-29 21:48:39 3425 47

原创 【数据结构】数据结构中的隐藏玩法——栈与队列

栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈,栈又称为先进后出(Last In First Out)的线性表,简称LIFO结构。

2024-05-25 12:28:38 1466 56

原创 【数据结构】解密链表之旅(双链表篇)

对于单向链表,由于每个节点只存储了向后的指针,到了尾标志就停止了向后的操作,这样,某一节点就无法找到它的前驱节点,就像我们无法回到从前。

2024-05-20 21:42:07 2811 51

原创 【数据结构】解密链表之旅(单链表篇)

在上一篇博客中我们提到了线性表有两种存储方式,一种是顺序存储,一种是链式存储。线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据可以存在内存未被占用的任意位置。在之前的顺序结构中,每个数据元素只需要存储数据元素信息就可以了。现在链式结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址。链式存储结构相比于顺序存储结构的优势在于插入和删除操作的高效性。

2024-05-14 12:41:34 2566 53

原创 【数据结构】手把手带你玩转线性表

线性表,听名字我们就能感受到,是具有线一样性质的的表。举个鲜明的例子,当我们在上体育课时,一个班的人都排好队,每一排都有一个打头的,一个收尾的,每个人都知道自己前一个是谁,后面一个是谁,这样就如同一根线一样将他们串在了一起,这就可以称为线性表。线性表是数据结构中最基本的一种,它是由n(n>=0)个具有相同类型的元素组成的有限序列。具体来说,线性表由多个元素组成,每个元素都有一个唯一的前驱元素(除第一个元素外)和唯一的后继元素(除最后一个元素外)。

2024-05-10 22:07:26 1666 43

原创 【数据结构】带你轻松掌握算法的复杂度

算法的设计和实现是数据结构的关键组成部分,可以通过选择合适的算法来提高代码的效率和性能。

2024-05-07 12:11:54 1809 37

原创 【数据结构】初识数据结构

数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我想让大家知道的是:数据结构非常有趣,很多算法是智慧的结晶,我希望大家在学习数据结构的过程是一种愉悦的心情感受。因此我开创了《数据结构》专栏,在这里我将把数据结构内容以有趣易懂的方式展现给大家。

2024-05-05 08:45:30 1551 31

原创 C语言趣味代码(五)

我想以此篇结束关于C语言的博客,因为在C语言拖得越久越不能给大家带来新的创作,在此我也相信大家对C语言已经有了一个新的认知。进入正题,在这一篇中我主要编一个“英语单词练习小程序”来给大家展开介绍,从测试版逐步改良,每一步详细讲解让大家能够对学过的知识再有一个全新的认知。

2024-04-30 20:48:50 1387 20

原创 C语言趣味代码(四)

这一篇主要编写几个打字练习的小程序,然后通过这些小程序的实现来回顾复习我们之前学过的知识,然后通过这写打字练习的小程序来提升我们的打字技术和编程技术。

2024-04-28 17:25:56 2927 21

原创 C语言趣味代码(三)

这一篇主要围绕写一个程序---寻找数字 来写,在这篇我会详细和大家介绍基本实现以及它的改良版,还有相关知识的拓展,干货绝对满满。

2024-04-24 18:08:31 3650 10

原创 C语言趣味代码(二)

珠玑妙算”是一个猜不重复的数字串的游戏,游戏的流程是:出题者根据答题者的推测给予提示,循环进行这种对话形式的处理,直到答题者猜对答案为止。出题者从0~9中选出4个数字,并将这4个数字排列成数字串作为题目。因为所有数字都不相同,所以不会出现“1123”这种出现重复数字的情况。下面是答案为“7615”时的游戏流程|:答题者(玩家)推测数字串,出题者(计算机)提示玩家该数字串中包含多少个答案数字,以及又有多少个数字位置是正确的。

2024-04-21 10:28:45 2521 6

原创 C语言趣味代码(一)

C语言相关知识点的博客和大家分享完了,接下来我想开始数据结构相关的博客,在此之前呢,有的小伙伴问过我学完C语言的相关知识,我能干些什么呢?只有刷题吗?这不禁让我反思:在我们学习的过程中,我们所有学习时用到的书籍都是围绕某一知识点介绍、拓展,千篇一律的示例代码,好像从没出现一些新颖的代码。所以我想用3篇左右的博客跟大家分享一下用我们学过的知识实现的有趣代码,然后再开始后面的数据结构的博客。

2024-04-17 18:24:33 2618 4

原创 C语言预处理操作详解

C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATA__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义一起看下面的代码,我们来举个栗子:int main()return 0;#define MAX 100 //为MAX定义一个值。

2024-04-12 09:23:08 1278 4

原创 C语言中的动态内存管理

这篇博客和大家讲一讲C语言中的动态内存管理。在C语言中我们知道指针很重要,同样的自定义类型中的结构体和动态内存管理也很重要,数据结构是严格依赖这三块知识点的。

2024-01-24 14:40:06 1135 4

原创 C语言中自定义类型:联合和枚举

在上一篇博客中和大家分享了自定义类型的一种:结构体,这篇和大家聊聊其他的自定义类型:联合和枚举。

2024-01-20 15:54:18 1090 2

原创 C语言中自定义类型:结构体

本篇博客和大家分享一下自定义类型:结构体。这里我们先提一下类型,类型有内置类型(char、short、long、int等)和自定义类型,内置类型创造出来可以直接使用,C语言本身自带的一种类型,当自定义类型不能满足的时候,支持自定义一些类型(当然不是随便定义的):结构体、枚举、联合体。数组(一种相同类型的集合)其实也是一种自定义类型,前面博客已经写过了这里就不提了,接下来介绍自定义类型中的结构体:当我们描述一个人的年龄时会写 int age=10; 但当描述稍微复杂的类型时,直接使用内置类型时不行的,例如我们

2024-01-18 10:25:39 1068 2

原创 C语言中的内存函数

在上一篇的博客中和大家分享了字符串函数,这篇和大家分型一下C语言中的内存函数。它们是针对内存块的函数,不在乎内存中的数据。他们也需要string.h头文件。

2023-12-21 20:02:44 634 2

原创 字符函数和字符串函数

这篇文章和大家分享一下字符函数和字符串函数。

2023-12-15 11:59:42 1168

原创 万字深入理解C语言中的指针(4)

终于到了万字深入理解C语言中的指针的最后一篇,通过这4篇对C语言中的指针的讲解,希望能帮到大家。

2023-10-24 22:26:22 260 3

原创 万字深入理解C语言中的指针(3)

之前我们提到了指针数组,指针数组是一种数组,用来存放地址(指针),数组指针变量究竟是指针变量还是数组呢?它是指针变量。int * p;存放的是整形变量的地址,能够指向整形数据的指针。float * pf;存放的是浮点型变量的地址,能够指向浮点型数据的指针。那数组指针变量应该是:存放的应该是数组的地址,能够指向数组的指针变量。下面的代码那个是数组指针呢?p2是数组指针。解释一下:p先和 * 结合,说明p是⼀个指针变量变量,然后指着指向的是⼀个大小为10个整型的数组。

2023-10-22 15:52:28 249 1

原创 万字深入理解C语言中的指针(2)

书接上回,我们接着谈论C语言中的指针。

2023-10-01 22:20:37 251 1

原创 万字深入理解C语言中的指针(1)

这里和大家分享一下C语言中的精髓——指针,总有的人会觉得好难啊,放心,慢慢来,没有学不会的知识,大家不要觉得他有多可怕,不要给自己心理压力,认真学肯定是会学会的。那么我们就开始今天的博客之旅了。

2023-09-25 13:54:48 317 4

原创 函数递归经典例题(汉诺塔和青蛙跳台阶详解)

上一篇和大家分享了函数递归相关的知识,那么这一篇就和大家分享两个函数递归的经典例题:汉诺塔问题和青蛙跳台阶的问题。

2023-09-11 21:53:05 426 1

原创 函数的递归

递归是我们学习C语言函数绕不开的一个话题,那么什么是递归呢?递归是一种解决问题的方法,在C语言中,就是函数自己调用自己。//在这里main函数又调用了main函数return 0;上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问 题,代码最终也会陷⼊死递归,导致栈溢出。把一个大型复杂问题层层转化为一个与原类型相似,但规模较小的问题来求解,直到问题不能再被拆分了,递归就结束了,所以呢,递归就是把大事化小的过程。

2023-09-08 21:39:13 297 2

原创 C语言实现扫雷小游戏

游戏可以通过菜单实现继续玩或者退出游戏扫雷的棋盘是一个9*9的棋盘默认随机布置10个雷可以排查雷如果不是雷,显示周围(8格)有几个雷。如果是雷,游戏失败。把10个雷之外的所有格都排查干净,排雷成功,游戏结束。游戏界面排雷界面游戏失败界面。

2023-09-06 21:11:02 355 2

原创 C语言中的函数(2)

上一篇我们围绕着库函数、自定义函数、实参和形参展开了讲解,这一篇我们围绕着return语句、函数的嵌套和链式访问等几个方面进行讲解。

2023-08-24 12:41:17 501 2

原创 C语言中的函数(1)

了解了库函数之后,我们应该把关注度的焦点放在自定义函数上面,自定义函数其实更加重要,也能给程序员写代码更多的创造性。

2023-08-21 18:50:48 365 2

原创 C语言练习之打印菱形

菱形我们分成上三角和下三角打印,我们定义一个·变量i分别打印上三角和下三角,i是从0开始的,上三角的行数为line,下三角的行数为line-1。上三角中:先输出空格在输出*,每行空格从上往下数一行少一个,每行中*以2*i+1的方式递增。下三角中:先输出*在输出空格,每行空格从上往下数一行多一个,每行中*按照(line-1-i)*2的方式减少。

2023-08-15 17:58:26 993 1

原创 C语言中的数组之二维数组

上一篇我们讲的数组被称为一维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称 为多维数组。整型、整形一维数组、整形二维数组。

2023-08-15 15:42:41 6638 8

原创 C语言中的数组(一维数组)

数组中存放的是一个或者多个数据,但数组元素个数不能为零。数组中存放的多个数据,类型是相同的。数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。

2023-08-13 09:30:09 1756 2

原创 随机数的生成之猜数字游戏(详解)

游戏要求:1.电脑自动生成1到100的随机数2.玩家猜数字,玩家猜数字的过程中,根据猜测数据的大小给出反馈,直至猜对游戏结束。

2023-08-08 18:51:40 1523 2

C语言VS2022编译器

C/C++语言编译器

2023-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除