自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构】树和二叉树的概念及结构

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。若一个节点含有子节点,则这个节点称为其子节点的父节点;完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。从根开始定义起,根为第1层,根的子节点为第2层,以此类推;也就是说,如果一个二叉树的层数为K,且结点总数是。以某节点为根的子树中任一节点都称为该节点的子孙。一个节点含有的子树的根节点称为该节点的子节点;要注意的是满二叉树是一种特殊的完全二叉树。一个节点含有的子树的个数称为该节点的度;

2023-08-13 20:11:46 2908 126

原创 【JavaSE】接口的语法知识和使用方法总结

在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。电脑的USB口上,可以插:U盘、鼠标、键盘...所有符合USB协议的设备电源插座插孔上,可以插:电脑、电视机、电饭煲...所有符合规范的设备通过上述例子可以看出:接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。 在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口。 提示:1. 接口类型是一种

2023-08-10 07:07:39 740 108

原创 【JavaSE】什么是抽象类?什么是内部类?以及它们的作用是什么?

这篇文章我们主要学习的是两个知识点,可以来解决文章标题所提出来的两个问题:什么是抽象类?什么是内部类?以及它们的作用是什么?

2023-08-08 07:41:44 762 145

原创 【JavaSE】String类中常用的字符串方法(超全)

1.求字符串的长度2.判断字符串是否为空3.String对象的比较3.1 判断字符串是否相同3.2 比较字符串大小3.3 忽略大小写比较4.字符串查找5.转化5.1数值和字符串转化5.1.1 数字转字符串 valueof5.1.2 valueOf的其他用法5.1.3 字符串转数字5.2大小写转换小写转大写大写转小写5.3 字符数组转字符串5.4字符串转数组5.5格式化6.字符串替换7.字符串拆分8.字符串截取

2023-08-07 16:07:27 859 105

原创 【JavaSE】面向对象编程思想之多态(图文详解)

多态的概念:通俗来说,就是多种形态,总的来说:同一件事情,发生在不同对象身上,就会产生不同的结果。

2023-08-06 17:41:52 893 107

原创 【JavaSE】面向对象编程思想之继承

继承是一种一种思想,他实现的是对共性进行抽取,从而达到代码复用的效果。注意:1. 子类会将父类中的成员变量或者成员方法继承到子类中了2. 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必 要继承了。

2023-08-04 02:00:00 1136 147

原创 【JavaSE】初步认识类和对象

2.1 类的定义格式在java中定义类时需要用到class关键字,具体语法如下class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中包含的内容称为类的成员。属性主要是用来描述类的,称之为类的成员属性或者类成员变量。方法主要说明类 具有哪些功能,称为类的成员方法。//属性//行为方法上面定义了一个名为Person的类,该类具有以下属性和行为方法:name:用于存储人的姓名的字符串变量。age:用于存储人的年龄的整数变量。

2023-08-01 23:03:58 868 85

原创 【JavaSE】Java方法的使用

方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会):1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发, 不必重复造轮子.方法语法格式比如:实现一个两个整数相加的方法return x+y;写一个方法,检测一个年份是否为闰年【注意事项】1. 修饰符:现阶段直接使用public static 固定搭配。

2023-07-31 08:08:24 1063 105

原创 【JavaSE】数组的定义与使用

可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到:1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号,其实位置的编号为0,即数组的下标。

2023-07-30 11:22:30 1137 89

原创 【JavaSE】运算符

计算机的最基本的用途之一就是执行数学运算,比如:上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2023-07-26 18:11:08 1236 83

原创 【JavaSE】数据类型与变量

字节是计算机中表示空间大小的基本单位.计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).我们平时的计算机为 8GB 内存, 意思是 8G 个字节.其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.所以 8GB 相当于 80 多亿个字节。

2023-07-25 21:52:14 723 104

原创 【javaSE】初识Java

【本节目标】1. Java语言简介、发展概述、语言优势、与C/C++区别2. 初识Java程序入口之main方法3. 注释、标识符、关键字。

2023-07-25 09:31:33 4362 97

原创 【C语言】指针进阶(3)

数组名的意义:1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。3. 除此之外所有的数组名都表示首元素的地址。

2023-07-22 21:07:53 1191 104

原创 【C语言】指针进阶(2)

void*的指针是无具体类型的指针,这种指针是不能直接解引用的,也不能直接进行运算。但它。

2023-07-21 13:07:58 1085 64

原创 【C语言】指针进阶(1)

数组指针是指针?还是数组?答案是:指针。整形指针——指向整形变量的指针,存放整形变量地址的指针变量。字符指针——指向字符变量的指针,存放字符变量地址的指针变量。数组指针——指向数组的指针,存放的是数组的地址。下面代码哪个是数组指针?int (*p)[10]是数组指针。

2023-07-20 10:09:47 905 106

原创 【数据结构】栈和队列(队列篇)

我们使用的是不带头节点的单向链表来实现队列,而队列要在队尾插入数据,因此每次都要遍历链表找队尾,这样会使得程序的运行效率变低。这里采取了一种解决办法:定义一个指向队尾的指针tail每次插入新的数据就只要将tail中的next指针指向新节点即可,同时插入新的数据后再更新tail的位置。}QNode;这里单独定义了一个结构体来存储头指针head和尾指针tail。}Queue;

2023-07-02 23:07:24 984 42

原创 【数据结构】栈和队列(栈篇)

下面是定长的静态栈的结构,实际中一般不实用,所以我们主要实现下面的支持动态增长的栈int top;// 栈顶}ST;支持动态增长的栈int top;}ST;这里的top表示栈顶元素的位置,capacity表示栈的容量,a是一个指针,用于接收动态内存开辟数组的地址。

2023-06-29 11:12:08 1765 85

原创 【数据结构】双向链表

和单向链表一样,双向链表每个节点都是由结构体组成的数据类型,但是双向链表结构体中增加了一个指向前一个节点的指针。//方便修改数据类型//指向下一个节点的指针//指向前一个节点的指针//存储的数据}LTNode;我们今天要将的是带哨兵卫头节点的双向循环链表,它的头节点不存储有效数据,头节点中的prev指针指向最后一个节点。

2023-06-28 15:05:06 9480 66

原创 【数据结构OJ题】链表带环问题

将meet的下一个节点设置成newHead,求出head到meet的长度n, newHead到meet的长度m, 再利用快慢指针,使长的链表先走fabs(m-n)次,再同时走,当两个指针想等时,就到达了环的入口。:使用快慢指针,慢指针每次走1步,快指针每次走2步,当快指针走到末尾是,慢指针的位置就是链表中间位置。用一个指针从链表的头节点出发,另一个指针从链表相遇的节点出发,当这两个指针相遇时,说明它们到达了入口。:先遍历一遍链表,计算出链表的长度,然后将长度除二,在遍历半个链表即可。

2023-06-27 21:20:35 962 34

原创 【数据结构OJ题】移除链表元素

此时,我们将prve的next指针指向cur的下一个节点,然后释放cur所指向的内存空间,使得cur指向prve的下一个节点(也就是新的当前节点),继续遍历整个链表。此时,我们修改head指向cur的下一个节点,然后释放cur所指向的内存空间,使得cur指向新的头结点(即head),继续遍历整个链表。如果是,我们就需要将该节点从链表中移除。如果当前节点cur的值不等于val,我们就只需要更新prve和cur的指向,使得它们分别指向当前节点的前一个节点和当前节点的下一个节点,然后继续遍历整个链表。

2023-06-27 11:32:30 661 45

原创 【C语言】函数栈帧的创建与销毁

今天我们要学习的是函数栈帧的创建与销毁,学完这部分内容,我们可以解决下面的几个问题:局部变量是怎么创建的?为什么局部变量的值是随机值?函数是怎么传参的?传参顺序是怎样的?形参和实参是什么关系?函数调用是怎么做的?函数调用是怎么做的?函数调用结束后是怎么返回的?学习函数栈帧的创建与销毁不仅可以学习到这些知识,还能修炼自己的内功,也能搞懂后期更多的知识。进入正题.今天讲解的时候,使用的环境是VS2013,不要使用太高级的编译器,越高级的编译器,越不容易学习和观察。

2023-06-17 20:05:24 1651 76

原创 【C语言】数据在内存中的存储

前面我们已经学习了基本的内置类型:以及他们所占存储空间的大小。其中int表示的数据范围:short表示的数据范围:1. 使用这个类型开辟内存空间的大小(大小决定了使用范围)。2. 如何看待内存空间的视角.大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。为什么会有大小端模式之分呢?

2023-06-04 23:28:09 1677 111

原创 蓝桥杯2022年第十三届决赛真题-卡牌——二分法

马上就要进行第十四届蓝桥杯国赛了,自从打完省赛后就没有怎么刷过题了,这两天想了想,感觉还是得多刷点题,争取在这次国赛中拿个三等奖。我又重新写了下,于是就能通过了。AC后的感觉是真的好爽 😊。

2023-05-26 08:40:16 492 45

原创 【C语言】assert和const的用法

注意:定义了指向常变量的指针变量p并使它指向了c1,并不意味着把c1也声明为常变量,而只是在用指针变量访问c1期间,c1具有常量的特征,其值不能改变,其他情况下,c1仍然是一个普通的变量,其值是可以改变的。总结:指向常变量的指针变量除了可以指向常变量,还可以指向未被声明为const的变量,此时可以通过指针变量访问该变量,但不能通过此指针变量改变该变量的值。,如果一个变量已经被声明为常变量,不能用它进行初始化别的变量,而且只能用常变量的指针去指向它,而不能用一般的非const类型指针变量去指向它。

2023-05-23 20:47:26 1501 48

原创 【C语言】经典面试题

经过我们不断地按f11键,我们发现arr[12]的值总是和i的值一起变化,我们猜测i和arr[12]是占用同一块内存空间的。不少伙伴都认为执行这段代码会打印13次“hehe”然后程序就崩溃(数组越界访问)了,带实际运行结果是什么呢?我们发现程序并没有出现崩溃的现象,而是在持续不断的打印出“hehe”,这是为什么呢?有这样一段代码,分析在VS编译器的运行结果。

2023-05-23 18:46:51 718 47

原创 【C语言】求二进制位中一的个数

NumberOf1函数的实现比较简单,它使用了一个循环,不断将n除以2,并判断余数是否为1。然后,将n右移1位,继续进行下一轮循环,直到n的二进制表示中所有位都被访问过。需要注意的是,在统计有符号整数的二进制表示中1的个数时,应该考虑符号位的影响。NumberOf1函数的实现比较简单,它使用了一个for循环,对于n的二进制表示中的每一位进行检查。使用Brian Kernighan算法来统计一个整数的二进制表示中1的个数的时间复杂度为O(log n),比其他方法都要更加高效,因为它跳过了很多不必要的计算。

2023-05-20 08:42:32 555 49

原创 【C语言】结构体初阶

结构体变量的定义和初始化可以分别进行。结构体变量的定义可以像定义其他变量一样进行,使用结构体的名称作为新定义的类型。例如,假设我们有以下结构体定义:我们可以定义一个新的结构体变量s,如下所示:这将在内存中分配足够的空间来存储student结构体的两个成员变量。可以使用点号运算符为结构体的成员变量赋值或访问这些变量。

2023-05-19 21:10:16 721 46

原创 【C语言】指针初阶

在 C 语言中,指针是一种特殊的变量,能够存储另一个变量的内存地址。指针变量可以用来访问、修改存储在内存中的数据。将一个变量的地址存储在指针变量中,可以通过解引用操作符(*)来访问指针所指向的变量的值。例如,可以通过以下方式声明和使用一个整型变量和一个指向该变量的指针:

2023-05-19 15:09:08 751 47

原创 【C语言】表达式求值中类型转换和优先级

表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长 度。所以,表达式中各种长度可能小于int长度的整型值,都必须先转 换为 int 或 unsigned int,然后才能送入CPU去执行运算。取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。C的整型算术运算总是至少以缺省整型类型的精度来进行的。

2023-05-14 18:43:43 1274 54

原创 【C语言】操作符详解

对一个数的补码二进制位取反,包括符号位扩展:将二进制某一位由0改成1,1改成0的方法。

2023-05-14 10:23:31 707 52

原创 【C语言】数组

1. 数组是使用下标来访问的,下标是从0开始。2. 数组的大小可以通过计算得到。

2023-05-11 13:57:37 1164 73

原创 【C语言】扫雷小游戏(递归展开版)

想必大家都玩过扫雷这款小游戏吧?在一个棋盘上随机摆放数个雷,这些雷用户无法看见,只能一个个将雷排查出来,用户点击一个格子,如果这个格子含有雷,游戏就以失败告终,如果这个格子不是雷,就会在这个格子上显示周围8个格子共有多少个雷,如下图:今天我们就用C语言来实现这个扫雷小游戏。

2023-05-10 18:10:54 2229 70

原创 【C语言】三子棋小游戏

哈喽,大家好,今天我们要利用之前所学习的C语言知识来写一个三子棋小游戏。

2023-05-07 21:39:08 815 42

原创 【数据结构】单向链表

哈喽,大家好,今天我们学习的是数据结构里的链表,这里主要讲的是不带哨兵卫头节点的单向链表,下篇将会继续带大家学习双向链表。

2023-05-05 13:46:26 1270 57

原创 【数据结构OJ题】反转链表

上面的方法是针对链表不是空链表而设计的,如果是空链表,程序就会出错,此时可以直接返回一个空指针即可。然后就是一个循环的过程了,每次将。n2为空指针的时候才终止,为空指针的时候,不能让。改变链表中指针的指向。

2023-05-03 21:08:28 208 22

原创 【C语言】函数与递归

如果库函数能干所有的事情,那还要程序员干什么?所以更加重要的是自定义函数。自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间自定义函数和库函数一样,有函数名,返回值类型,函数参数我们举一个例子:写一个函数可以找出两个整数中的最大值。a : b;return 0;写一个函数可以交换两个整型变量的内容:x = y;y = tmp;

2023-05-01 20:51:59 905 21

原创 算法OJ题(1)

比较num1[end1]和num2[end2]的大小,将较大值依次移到数组一,从后往前进行。定义两个变量end1,end2 ,分别指向两个数组的最后一个元素。使用双指针算法可以使时间复杂度达到O(1).

2023-04-29 21:09:35 257 18

原创 【C语言】猜数字小游戏

rand()产生随机数时,如果用srand(seed)播下种子之后,一旦种子相同(下面的getpid方法),产生的随机数将是相同的。当然很多时候刻意让rand()产生的随机数随机化,用时间作种子。,这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。c> 猜对了,提示 :恭喜你,猜对了,结束游戏。a> 猜大了,提醒猜大了,继续猜。b> 猜小了,提醒猜小了,继续彩。将代码写成函数的形式可以减少代码的重复。设定了一个值,如果有那么它会自动调用。函数每次调用前都会查询是否调用过。

2023-04-23 22:31:30 817 13

原创 【C语言】分支和循环语句

C语言中的语句大致可分为下面五类:1. 表达式语句2. 函数调用语句3. 控制语句4. 复合语句5. 空语句其中,我们今天主要讲的是控制语句,控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1. 条件判断语句也叫分支语句:if语句、switch语句;2. 循环执行语句:do while语句、while语句、for语句;

2023-04-22 21:51:07 608 32

原创 【C语言】static的用法

static修饰局部变量static修饰局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。static修饰全局变量一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使 用。static修饰函数一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

2023-04-14 22:11:13 714 32

空空如也

空空如也

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

TA关注的人

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