自定义博客皮肤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)
  • 收藏
  • 关注

原创 手撕,高级数据结构——AVL树的实现和插入方法

AVL树的实现和插入方法

2022-07-31 00:32:17 1226 1

原创 Java中的二叉树,前中后序遍历的递归和迭代写法。

文章目录一、树是什么?树的特点二、二叉树1.概念及特点2.读入数据总结一、树是什么?树是一种非线性的数据结构,它是由n(n >= 0)个有限结点组成的一个具有层次关系的集合。(线性数据结构就是:线性表,数组,栈,链表,队列,字符串…元素之间逻辑上一个挨着一个,呈值直线排列)把它叫做树是因为它看起来像一颗倒着的树,意思就是根朝上,叶子朝下。树的特点有一个特殊的结点,称为根节点,根节点没有前驱结点。除根节点外,其余节点被分成M(M > 0) 个互不相交的集合T1、T2、…、Tm,其中

2022-06-15 23:14:41 842 5

原创 Java中的栈

栈是一种存储数据的结构,只能从一端插入,也只能从这一端取出元素。栈其实就是操作受限的线性表。栈的特点: 先进后出,后进先出(LIFO)的线性表。添加和删除元素的一端称为栈顶,另一端称为栈底。如上图,将1,2,3,4,5按顺序插入栈中,栈顶就保存的是5,栈底就是1。从栈中取出元素的顺序和栈中添加元素的顺序恰好相反。基于数组实现的栈叫顺序栈,基于链表实现的栈叫链式栈。只能在栈顶插入元素,在栈顶删除元素。就是在数组的末尾插入和删除元素,此时的数组末尾就是栈顶。栈的三个核心操作:我们来实现一个基于动态数

2022-06-04 16:34:57 1765

原创 LeetCode 力扣155题,双栈实现最小栈——Java实现

文章目录一、题目描述二、思路分析一、题目描述二、思路分析整个操作的核心就在于有一个栈永远保存的都是每次有新元素入栈时当前栈中的最小值。首先定义两个栈,s1和s2,s2就是那个最小栈。当栈为空的时候直接入栈,两个都入栈。当栈不为空时,判断要入栈的元素和当前栈顶元素的大小关系;当s2的栈顶元素 > 要入栈的元素,直接入栈;当s2的栈顶元素 < 要入栈的元素,就把s2的栈顶元素再入一遍栈;这里是为了s2的元素个数和s1保持一致。如果s2的元素个数和s1不一致,那么进行出栈操

2022-05-23 10:42:00 165

原创 七大排序算法——堆排序之原地堆排序(Java实现)

文章目录一、堆排序是什么?二、分析 与 实现1.思路2.分析2.代码实现一、堆排序是什么?基于二叉树的二叉堆的排序算法。给定一个任意数组,不创建任何的额外空间,就在这个数组上进行排序。堆排序是一个稳定的O(nlogn)时间复杂度的算法。二、分析 与 实现1.思路任意数组其实可以看作是一个完全二叉树,我们首先将其调整称为最大堆(根节点>=所有的子节点,子树也满足最大堆的定义),也就是堆化heapfiy。从最后一个非叶子节点开始进行sift Down操作。sift Down操作就是从当前

2022-05-23 10:18:49 368

原创 LeetCode第290题——单词规律,给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。不使用HashMap,使用转换拆分遍历实现。

力扣第290题单词规律,不使用哈希表的实现方式。

2022-05-09 23:47:10 250

原创 年轻人的第一篇String类超详解——Java中的String类的常见操作、常量池、与字符数组的互相转换

文章目录前言一、String类二、创建字符串的四种方式1.直接赋值2.通过构造方法产生对象3.通过字符数组产生对象4.通过String的静态方法valueOf(任意数据类型)转为字符串三.字面量1.字面量2.字符串比较相等3.关于字符串的常量池问题总结前言一、String类JDK中的String类:为什么String类被final修饰呢?被final修饰后无法被继承,不存在子类,这样就可以保证所有使用JDK的人,大家用到的String类仅此一个,大家都相同。否则的话会导致子类行为不一致的问题。

2022-05-08 20:41:46 610

原创 Java基础——Java中的接口及其应用场景

文章目录一、接口的特点二、定义接口1.interface关键字2.implements关键字三.应用场景1.接口表示规范2.接口表示能力/行为四.接口和类之间的关系五.接口的命名规范总结一、接口的特点如果一个抽象类中的所有方法都是抽象的,则可以将这个类定义为Java中的另一种形式——接口。接口是一种特殊的抽象类,接口中只有全局常量和抽象方法,是一种更纯粹的抽象概念。在JDK8中,对接口进行了重新定义,接口中除了有抽象方法外,还可以有默认方法和静态方法;默认方法可以被继承和覆写,静态方法不能被继承和

2022-05-07 16:39:25 2153 2

原创 关于抽象类,你想知道的这里都有(maybe)——Java中的抽象类浅析

抽象类和抽象方法当我们定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。比如,我们定义一个Animal类时,在里面定义一个say()方法用来表示动物的叫声,我们有很多动物子类继承了Animal这个父类,但是不同的动物叫声也是不同的。因此我们无法在Animal中准确的描述,我们需要将这个say()方法定义成抽象方法,意思就是多种动物都有这种方法,我们用abstract关键字来修饰,并且在定义方法时不需要实现方法体。当一个类中包含了抽象方法,那么该类也必须使用

2022-05-07 00:19:28 374

原创 舍友半夜不睡觉在被窝里偷偷看——Java中动态数组的增删改查方法

文章目录一、动态数组二、代码实现1.增加2.删除3.修改4.查询5.测试总结一、动态数组动态数组:就是在普通数组上,增加了一个可以根据元素的个数动态调整数组大小的功能。之前的普通数组最大的问题就是数组长度定长,一旦一个数组在定义时确定长度之后,在使用过程中无法修改这个长度。Java中提供的数组都是静态数组 int类型、char类型、long类型、(定义之后没法改变长度),需要我们自己来定义一个类,拓展基础数组的功能。那么我们究竟是如何动态的调整数组的大小呢,实际上就是当我们数组已经满了的时候,使用

2022-05-04 22:40:27 986 1

原创 《一个赛季学个单链表那么难吗?》——Java中单链表(不带虚拟头节点)的增删改查方法实现

文章目录一、什么是单链表二、定义链表和节点类1.使用引用类型(自定义类型)定义2.实现增删改查方法一、什么是单链表单链表可以分为带虚拟头结点和不带虚拟头节点两种。我们今天先看不带虚拟头结点的单链表,我们可以将其看作是现实生活中的火车,每个车厢之间通过挂钩连接,所以说链表在物理上是不连续的,我们将链表中的每个结点看作是每节车厢,火车是由一节节车厢连在一起组成的,而我们的单链表也是如此,通过一个个的结点连在一起组成的,每个结点只保存一个值,且保存了下一个结点的地址。所以单链表只能从头结点开始从前向后走。

2022-05-03 17:33:32 220

原创 有了对象却不知如何面对?别害羞,看看这个 ---Java中的三大特性——封装、继承、多态

文章目录前言一、封装二、继承1.继承的概念2.继承使用的规则3.super关键字4.final关键字三、多态1.向上转型2.方法重写(override)3.向下转型总结前言有了对象不知道如何面对?今天就手把手教你迈出勇敢的第一步:面向对象(Object Oriented Programming,OOP)。一、封装封装是处理对象的一个重要概念,使用private关键字将属性进行封装(这个属性只在当前类内部可见,对外部隐藏)。被封装后的属性和方法不能被随意的调用和修改,只能通过get 和set两个

2022-05-02 18:50:15 594

原创 万字浅析Java中的构造方法(构造器)、this关键字、代码块。

文章目录一、构造方法1.1 构造方法是什么1.2构造方法的语法规则1.3内存分析1.4 构造方法的重载二 . this关键字this关键字的作用2.1 this调用当前成员变量2.2 this调用当前对象的普通成员方法2.3 this表示构造方法间的互相调用2.4 this当前对象的引用三.代码块3.1 代码块的含义及分类3.2普通代码块3.3 成员代码块3.4 静态代码块(重点理解)总结一、构造方法1.1 构造方法是什么构造方法(构造器) 是类中非常特殊的一类方法,使用关键字new来实例化对象的

2022-04-19 17:37:32 429

原创 Java中判断一个数组是否有序,如何给一个乱序数组排序?七大排序算法之冒泡排序

文章目录一、核心思想二、代码实现总结一、核心思想假设数组现在有n个元素,每进行一次遍历过程,就将当前数组中最大值放在数组末尾,每进行了一次遍历,就有一个元素到达了最终位置。(升序排序)将两个数组看作两个子数组,待排序的数组为[0…n-1],排好序的数组[ ],每当进行一次遍历后,待排序的数组元素 -1,排好序的数组元素 +1。;从待排序数组的第一个元素开始比较,当第一个元素比第二个元素大的时候就将两个元素交换位置,这样进行比较完后,数组中的最后一个元素一定是最大的元素。第一次比较完后数组的情况

2022-04-18 22:19:33 598

原创 重生之我在CSDN学Java——关键字之static关键字

文章目录前言一、关键字是什么?二、static关键字的特点stactic可以修饰的东西1.1static修饰属性(所有对象共享的)其他1.2 static修饰方法总结前言一觉醒来,发现自己重生在大学的课堂上,这次你发誓一定要学好Java,你重活一世并不是想证明什么,而是要告诉别人,你失去的东西,你一定要自己拿回来!于是你便打开了CSDN…一、关键字是什么?关键字就是指在程序中,Java已经定义好的单词、具有特殊含义的、被保留的、不能随意使用的字符。像public、class、void、sta

2022-04-18 15:53:11 310 1

原创 都2022年了你还没对象啊?进来看看吧 ——Java中的类和对象

文章目录前言一、类和对象是什么?二、语法格式1.创建类2.产生对象总结前言2022年了,还没有对象吗?还没理解类和对象的关系吗?还在苦苦冥思自己到底怎样才能拥有一个对象吗?那么今天就让我们一起走进对象的世界。一、类和对象是什么?类: 就相当于生活中的同一类事物,类是一个抽象的描述,就像车这个类,它的对象有卡车、轿车、赛车、我们可以将它抽象成汽车这个类。而货轮、游艇、帆船、我们又可以将它抽象成船这个类,那汽车和船这两个类又可以往上再抽象成交通工具这一个类。类的属性: 也叫成员变量,就像是汽车和船

2022-04-16 11:19:09 428

原创 什么?大学生不好好上课居然是因为这个——Java中的数组

文章目录一、数组是什么?二、数组的创建与初始化1.数组的动态初始化2.数组的静态初始化3.数组的使用总结一、数组是什么?数组就是一组相同类型数据的容器,本质上就是让我们可以“批量”的创建相同类型的变量。相同类型:Java语言要求存入数组的数据类型必须一致。容器:类似于我们生活中存放物品的容器,也可以理解成建单元楼,现实生活中单元楼里的房间是用来住人的就好比在编程中,数组用来存放数据。一组:容器中可以存放多个数据,就好像一栋单元楼可以住很多个业主。二、数组的创建与初始化1.数组的动态初始化

2022-04-12 15:21:02 108 1

原创 重生之我在CSDN学Java-——变量和类型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、变量和数据类型二、代码部分总结前言提示:这里可以添加本文要记录的大概内容:一觉醒来,忽然发现自己重生在大三的课桌上,想到前世的种种,这次你决定一定要从基础开始,狠狠的把Java学好!成为未来互联网的大佬,登上天空王座!于是乎你打开了CSDN…提示:以下是本篇文章正文内容,下面案例可供参考一、变量和数据类型 变量:指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据。我们所讨论的“变量”主要和我们的.

2022-04-04 18:19:19 427

空空如也

空空如也

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

TA关注的人

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