自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 优先级队列(堆)

Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线 程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。关于PriorityQueue的使用要注意:1. 使用时必须导入PriorityQueue所在的包,即:2. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException异常。

2024-06-26 13:42:50 636 1

原创 <数据结构>八大排序算法

1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定。

2024-06-13 18:20:02 1863

原创 二叉树的遍历和存储

设二叉树的根节点所在 层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层 上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。由于现在大家对二叉树结 构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等 二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。在遍历二叉树时,如果没有进行某种约定,每个人都按照自己的方式遍历,得出的结果就比较混乱,

2024-05-14 16:22:23 642 1

原创 二叉树的基本概念

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。// 下一个兄弟引用。// 第一个孩子引用。int value;// 树中存储的数据。我们这里就简单的了解其中最常用的。文件系统管理(目录和文件)

2024-05-11 17:15:56 415 1

原创 ArrayList与顺序表

在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。

2024-04-25 15:07:03 1350 5

原创 OR36 链表的回文结构

分奇数和偶数个节点,使用快慢指针,先找到中间节点,然后将后半节点逆序,如果是奇数节点只需判断头节点和慢指针是否相同,如果是偶数节点加一个if条件判断,头指针的下一个是不是慢指针。对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。给定一个链表的头指针。

2024-04-23 11:30:33 163

原创 JAVASE

JavaSE包含了许多重要的组件和功能,如Java基础类库、Java虚拟机、Java语言规范、Java开发工具等。JavaSE的跨平台性是指开发的Java程序可以在不同的操作系统上运行,只需要安装对应的Java虚拟机即可。健壮性和高性能则保证了JavaSE应用程序的稳定性和效率。总的来说,JavaSE是Java编程语言的基础和核心部分,提供了丰富的功能和工具,可以帮助开发人员快速构建各种类型的应用程序。通过学习和掌握JavaSE,开发人员可以更好地理解Java语言的特性和机制,提高自己的编程能力和水平。

2024-04-21 19:23:58 461 1

原创 认识异常!

在Java中,将程序执行过程中发生的不正常行为称为异常。1.算数异常// 执行结果 Exception in thread "main" java.lang.ArithmeticException: / by zero2. 数组越界异常// 执行结果 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1003. 空指针异常。

2024-04-21 19:17:15 740 1

原创 学习笔记,JAVA继承和多态(2)

继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。向下转型用的比较少,而且不安全,万一转换失败,运行时就会抛异常。将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,即向下转换。通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到 则访问,否则编译报错。

2024-04-21 18:58:44 1591 1

原创 学习笔记,JAVA类和对象(1)

​//字段 -> 成员变量 : 定义在方法外边 类 的 里面//实例成员变量: 在对象Person里面//实例化没有初始化 默认值为对应的0值.-> (1.引用类型默认为null 2.简单类型默认为0)//我们也可以对实例成员变量进行赋值//char -> "\u0000"(空类型) boolean -> false//静态成员变量 不属于对象 属于类 ---有static 修饰//字段//构造代码块 || 实例代码块。

2023-11-13 15:08:45 141 7

原创 深入理解Java中的数据类型与变

本文深入探讨了Java中的数据类型与变量,包括字面常量的分类、数据类型的分类、变量的概念与使用、类型转换与类型提升以及字符串类型的转换。通过举例和详细解释,希望读者能够更好地理解和应用这些概念,为后续的Java编程打下坚实的基础。以上就是本文对Java中的数据类型与变量的深入解析,希望对读者有所帮助。

2023-11-02 18:31:26 69 8

原创 C语言中结构体大小的计算方法及对齐数的影响

总结一下,C语言中结构体大小的计算方法其实并不复杂,只需要考虑成员变量的大小和对齐数即可。例如,如果对齐数是4,那么结构体的成员变量通常会按照4的倍数进行对齐。最后,将各个成员变量的大小加起来,再加上最后一个成员变量的大小,就是结构体的总大小。嵌套结构体的大小计算方式与普通结构体类似,只是在计算过程中需要将嵌套结构体的大小也考虑进去。对齐数的选择会影响结构体的大小,以及结构体在内存中的布局。最后,将各个成员变量的大小加起来,再加上最后一个成员变量的大小,就是结构体的总大小。然后,我们需要考虑对齐数。

2023-10-25 20:33:13 104 8

原创 C语言memmove函数模拟实现

memmove函数和 memcpy函数在功能上非常相似,它们都用于在内存中移动一段数据。memmove函数可以处理内存重叠的情况,而memcpy函数不能处理内存重叠。首先,我们需要了解memmove函数的原型和功能:头 文 件:#include memmove函数的参数包括目标内存地址dest、源内存地址src以及要复制的字节数sz。函数的返回值为指向目标内存地址的指针。

2023-10-25 17:03:55 289 8

原创 用C语言实现简易版扫雷游戏

通过理解和掌握这个示例,我们可以进一步扩展和改进这个游戏,添加更多的功能和特性。扫雷游戏是一种经典的单人益智游戏,它需要玩家根据周围的数字来判断哪些方块是地雷,哪些是安全的。根据玩家的输入,揭开对应的方块,并根据周围的地雷数量显示相应的数字。使用两个二维数组来表示游戏界面,一个用来展示给玩家,另一个用来存储地雷位置信息。使用循环来控制游戏的进行,直到玩家揭开所有非地雷方块或触发地雷。使用随机数生成器来随机布置地雷,确保地雷的数量和位置都是随机的。上面一半是展示给玩家的棋盘,下面一半是储存地雷的棋盘。

2023-10-09 18:53:06 67 9

原创 C语言数据的存储

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8bit。

2023-09-19 18:25:39 57 10

原创 238. 除自身以外数组的乘积(C语言)

先算出整个数组的乘积和0的个数,如果有一个0则除了0处下标其它全部为0,如果有两个或以上个0则全部为0,如果没有0,则用乘积除当前下标的数。

2023-08-18 17:16:57 49 7

原创 使用C语言二维数组完成井字棋(三子棋)

当srand()的参数值固定的时候,rand()获得的数也是固定的,这样srand函数就需要用到time(NULL)参数,因为计算机的时间一直在变,所以rand()获得的数,也就一直在变,相当于是随机数了。如果有三个连在一起的就返回其中一个的符号,如果没有就继续判断棋盘有没有满,如果都没有就继续游戏。打印一个游戏菜单,输入1是开始玩游戏,0是退出游戏。用产生的随机值去%棋盘的行数这样就可以把值固定在行数之间(0-2),这样就不会越界,只需判断是否被占用。棋盘的每个格子由线条隔开,每个格子最开始都是空的。

2023-08-17 16:27:57 109 2

原创 冒泡排序(Bubble Sort)C语言

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果前面的数比后面的数大就把他们交换过来。

2023-07-27 23:18:00 162 5

空空如也

空空如也

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

TA关注的人

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