自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构(5)-DFS

我们来捋一捋,先是A,A的左右结点B和C。然后是B的左右结点,C的左右结点。这个顺序是不是符合先进先出,那我们就使用队列来做。DFS的顺序就是A->B->C->D->E->F->G,这是比较好理解的。那么在代码上我们该怎么解决。一般我们是用DFS的方式来遍历图,或者是树。这里我用一个二叉树来做例子。由于懒得写队列了,我就直接使用C++的Queue来写。这样就实现了二叉树的遍历。

2023-09-14 23:02:45 104 1

原创 C语言与数据结构(4)-快慢指针

这是一种在链表里常见的方法,因为链表的物理结构特殊性,我们如果说要删除链表中的倒数第5个元素,那么我们恐怕要先通过遍历整个链表来获得链表的长度,在遍历找到倒数第五的元素在哪。如果我们定义两个指针p1,p2,让p1打头,让p2永远在距离p1 ,5个结点的地方,那么p1遍历完整个数组,p2自然也找到了倒数第五的地方,直接输出就行了。让第二个指针永远保持在,第一个指针到头结点的位置的一半。我们再来看一个题目leetcode的876题,寻找链表的中间结点。如果用快慢指针的话,就直接一遍遍历过了。

2023-09-13 22:03:53 123 2

原创 C语言指针

如果你需要把一个数组传入一个函数里进行操作,就只要把指向那个数组的指针传入函数就可以了,不需要传入整个数组。我习惯把int* 看成一个整体,把它想象成一个新的数据类型,一个专门表示整型的地址的数据类型。这里的p就是是一个指针了,如果我在定义结构体的时候,没有那个*,那这么写p就是一个结构体了。我们让a指向了arr数组,然后输出了a和arr[0]的地址,这时候会发现a指向的地址和arr[0]的是一样。这是链表里常见的一个结点,注意list前的*号,这个是定义的一个list*指针,如果我们这样写。

2023-09-12 23:28:03 73

原创 c语言与数据结构(3)-单链表反转

链表的反转就是把,把后驱结点变成前驱结点,变一下Next指针域的指向。但如果头结点和后面的结点丢失联系的话,就会找不到其它结点,或者头结点找不到了。所以我们多开几个指针来保存一下结点的位置。经过尝试,要逆转指针需要记录三个结点的位置,至少要三个指针来保存,头结点是一个现成的指针,所以只要开两个新指针,也就是常用的双指针法。其实关于链表的题目动手在纸上画一下,就会有思路,如果只是单纯钉着电脑空想代码该长什么样,很难有结果。对于单链表不熟悉的同学可以看我的上一篇文章。leetcode的206题就是反转链表。

2023-09-11 20:42:27 56

原创 C语言与数据结构(2)-单链表的基本操作

上一节我们学习了线性表,线性表的查询效率是最高的,时间复杂度O(1)。但他有一些缺点,比如如果我们要存入1000万个int型的数字,那么就需要一块可以存入1000万int型的连续的空间。而链表则不需要连续的空间也可以存储。我写代码喜欢把不同功能封装到不同函数中,和王道408书里写的链表代码不一样,但是原理肯定都是一样的。而且关于链表的写法,我看几个人就有几种写法,仁者见仁,智者见智吧。我的下面的代码不一定优雅(可以跑)。

2023-09-10 23:01:33 108 1

原创 C语言与数据结构(1)-线性表

1.结构体来表示线性表。3.增加线性表长度函数。

2023-09-09 23:04:30 53 1

原创 C语言与计算机组成原理(1)-int型与原码补码

众所周知,计算机它不认识十进制,它只认识0,1,也就是二进制。我们输入电脑的数字,编译器会把它翻译成二进制,那个就是原码。例如,127,它的二进制是0111 1111。int型里面保存的是带符号的整数。它的最高位是符号位,剩下的31位才是数字位。所以,int型的范围是 [-2^31+1,2^31-1]。在32位编辑器里,int型是4字节(Byte),也就是32bit,32个0或1。,在寄存器里的补码是xxx,要你判断寄存器的数是什么。int型的范围是[-2^31,2^31-1]。

2023-09-08 00:26:02 240 1

原创 二分查找Java实现

解释一点:right=mid+1.为什么这么写。这是为了应对数组只有两位数的情况。同理,left=mid-1也是一样的道理。二分查找的前提是数组已经排好序了。

2022-12-02 22:57:26 110 1

原创 简单工厂模式(静态工厂模式)

一共三个类,工厂类,抽象产品类,实现产品类。直接上代码,看注释应该能明白,

2022-12-02 21:49:19 115

原创 J线性表Java实现(SequenceList)

其实,线性表我们可以理解成一个存储小数组的大数组,我们对T赋值来确定大数组的数据类型。然后,我们验证一下功能,写一个SequenceListTest类。我们先写一个SequenceList类,实现一些基本功能。调用方法来实现增删改查。这也是Java封装性的体现。使用foreach循环输出结果。以上是个人观点,欢迎大佬指点。

2022-11-30 17:23:09 207

原创 Arduino搭配红外传感器和蓝牙模块

电路连接主要是蓝牙模块的RXD和TXD,和红外传感器的OUT,我们定义对应个端口就行,其它的就是按正负极来连接可以。最近,我怀疑家里进了老鼠,于是决定用Arduino做一个监视器来监控厨房来确定是不是真的有老鼠。器材:Arduino uno,SR505红外传感器,JDY-31蓝牙模块,若干杜邦线。Arduino工作时会亮红色的LED灯,可能会吓跑老鼠,所以我用电胶布把灯贴住了。当我把手放在传感器面前时,手机上显示有老鼠,挪开时是安全。然后,下载一个SPP蓝牙助手在手机上,连接上就行了。

2022-11-25 14:27:58 1675

原创 equals()与==的区别(有图)

如果有,那么String对象会指向已有的“hhh”地址,如果没有现成的“hhh”,才会开辟新的空间,存储“hhh”,并把存储地址传给String对象。这个过程不会在堆里创建s1的空间,而是直接在常量池里开辟存储空间,存储"hhh",(因为String型是我们日常大量使用的,如果每建立一个String对象就在堆里开辟一个空间,那将非常浪费。使用了new就会在堆空间里开辟一个空间给s2对象,这时栈里的s2里存储的就是s2在堆空间里的地址了。而此时栈空间里的s1存储的是常量池的地址。==输出的是false,

2022-10-11 00:11:40 139

原创 Javaweb系列教程(1)—IDEA里Tomcat的安装配置

首先我们要打开Tomcat,找到Tomcat的安装文件,点击bin文件里的startup.bat,这是Tomcat的启动文件。如果不成功,那可能是两个问题,1,Tomcat默认的8080端口被占用。问题1,我们关闭占用8080端口的程序,或者把Tomcat默认的8080端口改成其他的即可。下载好之后是一个压缩包,我们将它解压,记住解压之后的地址,一会配置环境变量有用。如果是这样的一个界面,那么恭喜你,你的tomcat配置成功了。然后,我们添加框架支持,点击项目文件名字,右键,如图。

2022-10-08 00:15:12 1183 1

原创 Autox.js与vscode的连接,并实现自动打卡功能(ccit)

首先我们打开手机的无障碍模式找到显示指针功能打开,这样我们每次点击都可以找到我们点击点的坐标,从代码中的正在打卡之后的第二个click开始就是进入到打卡界面的第一个选项,兄弟们根据自己手机的坐标改正。接着我们需要打开电脑的9317端口,找到电脑右下角wifi图标,点击右键,点击打开网络与internet设置——window防火墙——高级设置——入站规则——新建规则——端口——特定端口9317,然后命名,一直下一步就可以了。我们在插件商店那里,搜索Auto.js,如图,下载第一个和第四个。.........

2022-08-25 22:30:49 6127 3

原创 冒泡排序-Java实现

冒泡排序是一种常用的排序算法

2022-08-19 23:37:45 197 1

原创 Java小工具-猜数字游戏(exe版)另附Java文件转exe文件教程

一款Java猜数字小游戏,并且转换成了exe可执行文件。系统会随机生成一正整数(1~100),猜测该数字,猜的次数越少,得分越高,6次猜不中,游戏结束。在这之前你将无法退出程序!

2022-08-19 18:14:33 1312

原创 Java小工具-帮助学委快速检查谁没交作业

大学期间,大家通过VX和QQ向学委发送作业,但是一个班有几十个人,学委要接收几十份文件,如果一个一个对名单,那效率太低。有了这个程序,学委就可以快速检测到没有交作业的同学,非常方便。并且,本程序对于一些奇怪的作业文件命名方式的文件也可以运行。

2022-08-19 16:37:14 623

软件测试期末考试速成资料

软件测试期末考试速成资料,主要为PPT包含:黑盒和白盒测试的方法, 等价类划分法: 边界值分析法:因果图法:决策表法:(判定表法), 白盒测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 基本路径覆盖 数据流测试

2022-12-15

W3school帮助文档中文版

W3school帮助文档中文版,新人上传,只要5积分。

2022-12-15

javaweb编程题资料

Javaweb编程题问题的解法,没有具体题目,只提供问题的大概方法,剩余的边角料需要根据考试时,具体题目具体分析。 Jsp中实现服务器端跳转或客户端跳转,以及xx秒内自动跳转功能 response.setHeader("refresh","2;URL=index.jsp");  编写Javabean(值对象) public class User { private String uid; private String password ; public void setUid(String uid) { this.uid = uid ; } public void setPassword(String password) { this.password = password ; } public String getUid() { return this.uid ; } public String getPassword() { return this

2022-12-15

java设计模式期末考试选择题100道

适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C.将一组实现部分从另一组使用它们的对象中分离出来。 D.你需要为特定的客户(或情况)提供特定系列的对象。 11. (单选题)下面属于结构模式的有( 正确答案: D ) A.观察者模式(Observer) B.单例模式(Singleton) C.策略模式(Strategy) D.外观模式(Fagade) 12. (单选题)下面不属于创建型模式的有( 正确答案: C )。 A.抽象工厂模式( Abstract Factory ) B.工厂方法模式(Factory Method) C.适配器模式(Adapter) D.单例模式(Singleton)

2022-12-13

空空如也

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

TA关注的人

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