自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 探索二叉树的奥秘:全面解析遍历技巧与在线OJ挑战实战

二叉树的遍历:前序遍历、中序遍历、后序遍历、层序遍历,二叉树基础OJ题:单值二叉树、检查两颗树是否相同、对称二叉树、二叉树的前序遍历、二叉树的中序遍历、二叉树的后序遍历、另一颗树的子树。

2024-05-21 21:05:13 775 10

原创 精通C++ STL(一):解开string类的面纱与高效应用

string的定义方式;string的插入:push_back进行尾插、insert插入;string的拼接:append函数;string的删除:pop_back进行尾删、erase删除;string的查找:find函数、rfind函数;string的比较:compare函数;string的替换:replace函数、string的交换、swap;string的大小和容量:size函数或length函数、max_size、capacity函数、resize、reserve、clear、empty .....

2024-05-19 23:26:28 1390 16

原创 深入探索C++模板:解密函数模板与类模板的奥秘

泛型编程、函数模板:函数模板的概念;函数模板的格式;函数模板的原理;函数模板的实例化;函数模板的匹配原则、类模板类:模板的定义格式;类模板的实例化。

2024-05-16 20:31:34 938 10

原创 深入探索C/C++内存管理

C/C++内存分布、C语言中动态内存管理方式calloc;realloc;free、C++中动态内存管理方式、new和delete操作内置类型;new和delete操作自定义类型、operator new和operator delete函数、new和delete的实现原理、内置类型;自定义类型、定位new和表达式(placement-new)、常见面试题、malloc/free和new/delete的区别?内存泄漏

2024-05-16 17:41:30 883 6

原创 C++类与对象基础探秘系列(三)

再谈构造函数、构造函数体赋值、初始化列表、explicit关键字、static成员、友元、友元函数、友元类、内部类、匿名对象、再次理解类和对象

2024-05-15 17:48:29 625 5

原创 C++自定义日期类的精彩之旅(详解)

构造函数、打印函数、日期and天数、日期 += 天数、日期 + 天数、日期 -= 天数、日期 - 天数、前置and后置、前置 ++、后置 ++、前置 --、后置--、日期类的大小关系比较、>运算符的重载、==运算符的重载、>=运算符的重载、

2024-05-14 22:13:43 667 2

原创 C++类与对象基础探秘系列(二)

类的6个默认成员函数、构造函数、构造函数的概念、构造函数的特性、析构函数、析构函数的概念、析构函数的特性、拷贝构造函数、拷贝构造函数的概念、拷贝构造函数的特性、赋值运算符重载、运算符重载、赋值运算符重载、const成员、const修饰类的成员函数、取地址及const取地址操作符重载

2024-05-14 17:20:21 990 1

原创 C++类与对象基础探秘系列(一)

面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装、访问限定符、封装、类的作用域、类的实例化、类的对象模型、如何计算类对象的大小、类对象的存储方式、结构体内存对齐规则、类成员函数的this指针、this指针的引出、this指针的特性、C语言和C++实现Stack的对比

2024-05-13 18:36:00 1002 2

原创 C++新手村指南:入门基础

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。//命名空间的普通定义namespace N1 //N1为命名空间的名称//在命名空间中,既可以定义变量,也可以定义函数int a;//命名空间的嵌套定义namespace N1 //定义一个名为N1的命名空间int a;int b;namespace N2 //嵌套定义另一个名为N2的命名空间int c;int d;

2024-05-08 23:45:05 688 3

原创 深入解析:C语言中的八大经典排序算法全揭秘

插入排序(Insertion Sort)希尔排序(Shell Sort)选择排序(Selection Sort)堆排序(Heap Sort)冒泡排序(Bubble Sort)快速排序(Quick Sort)归并排序(Merge Sort)计数排序(Counting Sort)

2024-05-08 14:23:32 959 1

原创 Linux入门-(超详细指令汇总)

ls- 列出目录内容。cd- 切换目录。pwd- 显示当前工作目录。mkdir- 创建新目录。rm- 删除文件或目录(使用rm -r删除目录)。cp- 复制文件或目录。mv- 移动或重命名文件或目录。

2024-05-06 16:37:29 591 1

原创 如何生成随机数

rand函数会返回⼀个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的大小是依赖编译器上实现的,但是大部分编译器上是32767。rand函数的使用需要包含⼀个头文件是:stdlib.h我们会发现一次运行中产生的5个数字是相对随机的,下一次运行程序生成的结果会和上一次一模⼀样。如果再深入了解⼀下,我们就不难发现,其实rand函数生成的随机数是伪随数,伪随机数不是真正的随机数,是通过某种算法生成的随机数。真正的随机数的是无法预测下⼀个值是多少的。

2024-04-21 23:36:20 764

原创 堆的概念、堆的向下调整算法、堆的向上调整算法、堆的基本功能实现

小堆:将根结点最小的堆叫做小堆,也叫最小堆或小根堆。大堆:将根结点最大的堆叫做大堆,也叫最大堆或大根堆。

2024-04-21 21:30:10 918 1

原创 树、二叉树、满二叉树、完全二叉树(详解)

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成的一个具有层次关系的集合。把它叫做“树”,是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。

2024-04-20 11:48:46 778

原创 链表 - OJ(超清晰思路+实现)

我们假设这两个链表的结点个数之差为count,我们可以让指向较长链表的指针先向后移动count步,然后指向长链表的指针和指向短链表的指针再同时向后移动,这样这两个指针最后会同时走到各自的链表结尾(NULL)。注:在寻找链表的最后一个结点的同时,我们便可以计算两个链表的长度,只不过这时我们只遍历到了最后一个结点,并没有遍历到NULL,所以统计的两个链表的结点个数都比链表实际长度少一,但这两个值相减后依然是这两个链表的结点个数差。这时返回该结点地址即可。新链表是通过拼接给定的两个链表的所有节点组成的。

2024-04-20 08:25:10 866

原创 栈和队列OJ(面试高频题 - 看完包!!!拿捏)

当需要进行出栈操作时,将不为空的队列中的数据导入空队列,仅留下一个数据,这时将这个数据返回并且删除即可。当字符串遍历完后,检测栈是否为空,若为空,则字符串有效,若不为空,说明有前括号未匹配,字符串无效。注意:环形队列的队尾不能像常规队列中队尾一样指向最后一个数据,如果这样的话,我们将不能区别环形队列的状态是空还是满,因为此时队头和队尾都指向同一个位置。其中,压入操作总是把元素添加到非空队列的末尾,而弹出操作时,会先确保所有元素都在同一个队列内,并且按照栈的“后进先出”原则进行操作。设计你的循环队列实现。

2024-04-19 15:25:33 669 1

原创 栈和队列-介绍与实现(超级!!!详解-C语言)

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。

2024-04-19 08:34:21 1089 1

原创 环形链表问题(详解+OJ)

​环形链表是一种特殊类型的链表数据结构,其最后一个节点的"下一个"指针指向链表中的某个节点,形成一个闭环。​

2024-04-18 17:33:26 558 1

原创 链表详解(C语言实现)——带头双向循环链表

前面说到,链表的结构一共有八种:带头单向循环链表、带头单向非循环链表、带头双向循环链表、带头双向非循环链表、无头单向循环链表、无头单向非循环链表、无头双向循环链表、无头双向非循环链表。在这八种结构中,我们只挑两种来进行刨析,即无头单向非循环链表和带头双向循环链表。无头单向非循环链表:结构简单,一般不会用来存储数据。实际上更多是作为其他数据结构的子结构,如哈希桶、图的链接表等等。带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构都是带头双向循环链表。

2024-04-16 15:24:29 1623

原创 链表详解(C语言实现)——无头单向非循环链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。实际中,链表的结构多种多样:通过以上的这些情况组合起来,就有八种链表结构。即带头单向循环链表、带头单向非循环链表、带头双向循环链表、带头双向非循环链表、无头单向循环链表、无头单向非循环链表、无头双向循环链表、无头双向非循环链表。

2024-04-16 11:08:13 719 1

原创 顺序表详解(C语言实现)

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存 储。在数组上完成数据的增删查改。顺序表一般可以分为:1. 静态顺序表:使用定长数组存储元素。2. 动态顺序表:使用动态开辟的数组存储。首先,我们要创建一个顺序表类型,该顺序表类型包括了顺序表的起始位置、记录顺序表内已有元素个数的计数器(size),以及记录当前顺序表的容量的变量(capacity)。

2024-04-15 19:56:00 422

原创 数据在内存中的存储

基本的内置类型char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数类型的意义:1.是用来创建变量,变量的创建需要在内存中开辟一块内存空间,用来存储变量的值。2.类型的大小决定了开辟内存空间的大小。

2023-11-04 23:15:52 48 1

原创 一维、二维数组(C语言)

数组的定义:是一组相同类型元素的集合。

2023-10-31 22:46:14 65 1

原创 函数题目练习

用一个函数,打印乘法口诀表,口诀表的行数和列数自己指定如:输入9,输出9*9乘法口诀表,输入12,输出12*12乘法口诀表利用两个循环嵌套即可解决问题。

2023-09-24 17:46:26 36 1

原创 函数介绍、递归(C语言)

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们程序员自己来设计。函数的组成statement;//语句项ret_type 返回类型fun_name 函数名para1 函数参数实例:写一个函数可以找出两个整数中的最大值//get_max函数的设计(x):(y);告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。函数的声明一般出现在函数的使用之前。

2023-09-24 16:32:45 36 1

原创 用C语言实现扫雷游戏(注释详解)

1.创建一个用户交互菜单2.创建一个棋盘用来埋雷并初始化3.创建一个棋盘用来和用户交互并初始化4.玩家选择想要扫描的坐标5.判定游戏是否结束6.若没有踩雷则在刚扫描的区域上显示周围八个区域的地雷数目并继续游戏7.继续扫雷8.判定游戏是否结束9.若全部扫描完非雷区域则游戏结束。

2023-08-11 22:04:07 95 1

原创 用C语言实现三子棋小游戏(注释详解)

1.创建一个用户交互菜单2.创建一个棋盘并初始化3.打印一个棋盘4.玩家落子5.判定胜负关系6.电脑落子7.判定胜负关系8.结束。

2023-08-11 16:27:33 62 1

原创 用C语言实现猜数字游戏(代码+注释)

【代码】用C语言实现猜数字游戏(代码+注释)

2023-07-27 15:42:07 370 1

原创 分支、循环与转向语句(C语言)

前言什么是语句?在C语言中语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句其中控制语句用于控制程序的执行流程,以实现程序的各种结构方式C语言中支持三种结构:顺序结构、选择结构、循环结构可分成以下三类:1.条件判断语句(分支语句):if语句、switch语句;2.循环执行语句:do while语句、while语句、for语句;3.转向语句:break语句、go to语句、continue语句、return语句。分支(选择)语句用于分支语句。

2023-07-26 21:38:29 118 7

原创 我与C语言的故事(五)

解引用:" * "的作用是引用指针指向的变量值,引用其实就是引用该变量的地址," 解 "就是把该地址对应的内容解开,就像打开一个包裹一样,那就是该变量的值,也就是说,解引用是返回内存地址中对应的对象。指针相当于地址,指针变量是用来存放内存地址的变量,在同一cpu构架下,不同类型的指针变量所占用的储存单元长度是相同的,而存放数据的变量因数据数据的类型不同,所占的存储空间长度也不同。结构体是一种数据类型,该数据由一组称为成员的不同数据组成,每个成员可以具有不同的类型,结构体通常用来表示不同但又相关的若干数。

2023-05-08 20:50:49 44 3

原创 我与C语言的故事(四)

一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。用该关键字修饰频繁被使用的变量,并建议该变量放在存储中运行,以提高速度。让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。定义一个标识符来表示常量,标识符不占内存,只是一个临时的符号。宏不能实现递归,只能对文本进行参数的替换,并不能简化计算。在C语言中:static是用来修饰变量和函数的。修饰局部变量-称为静态局部变量。只能修饰局部变量,不能修饰全局变量。变量a进入主函数自动创建,出了主函数进行自动销毁。

2023-05-07 21:14:11 38 1

原创 我与C语言的故事(三)

一级指针一般表示形式表示为int* q,指的是int*类型的变量q,二级指针一般形式表示为 int** q,指的是int**类型的变量q,以此类推,若q为一个int类型的指针变量,对q进行解引用操作,可以表达为*q。&后面为一个量,每一个量都对应一块属于自己的存储空间,每一个存储空间都有一个属于自己的编号,这个编号称为地址,因为指针指向的是一个地址,所以可以称指针为地址。解引用操作:*q为一个量的地址,进行解引用就是把地址里的值取出来。右移运算符>> 左移运算符<<

2023-04-21 17:22:52 89 22

原创 我与C语言的故事(二)

arr[10]表示数组中含有10个元素,在定义时数组进行过初始化,数组里面的数字可以省略,系统会自动帮你求出其大小。数组可以通过下标来访问的。\\ //用于表示一个反斜杠,防止它被解释为一个转义序列符。\'' //用于表示一个字符串内部的双引号。//xxxxxxxx 可以注释一行也可以注释多行。\ddd //ddd表示1-3八进制的数字。\' //用于表示字符常量'

2023-04-12 10:59:54 63 6

原创 我与C语言的故事( 一)

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉 字编程。常量:生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)变量:有些值是可变的(比如:年龄,体重,薪资)

2023-04-10 22:09:37 99 5

原创 C语言-学习之初

自我介绍:我是来自湖北武汉高校计算机科学与技术专业的一名普通学生。列出你编程的目标:先定一个小目标,学会并熟练掌握一门编程语言,然后能够熟练运用,能够深入思考,挖掘知识。你打算怎么学习编程?在学校教学的基础上,自己也在B站上寻找相关视频,也准备买相关书籍进行自学,遇到不懂的先思考,再寻求帮助。你打算在学习编程这件事上每周花费多少时间?尽己所能挖掘一切能够利用上的时间。你最想进入的一家IT公司尽自己最大的努力就好,不留遗憾。...

2022-01-13 20:52:26 147 1

空空如也

空空如也

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

TA关注的人

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