自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何给定二叉树的2个遍历序列(前序中序,中序后序),确定二叉树(方法详解)

根据前序和中序遍历 给定二叉树前序(根节点-左节点-右节点):A B D E H C F G中序(左节点-根节点-右节点):D B E H A F C G第一步:根据前序就可以判断遍历的第一个就是祖宗节点,为A ,然后我们就可以把中序遍历以A节点分开。第二步:再看前序A的后一个节点,为B,根据前序的性质为左子树的根节点,所以我们把中序遍历的B再次像之前那样截取出来。(由以上图可知,相信小伙伴们可以知道D就是左边的节点了,我就不判断了,我们直接看后面。)第四步:ABD根据前序全部遍历完毕。再次

2022-05-18 00:17:57 3382 2

原创 建立用户信息类UserInfo,要求如下:

(1)建立用户信息类UserInfo,要求如下:1)定义uName和password两个私有成员,分别表示用户名和密码,类型均为String类型;2)定义两个成员的get与set方法,用于获取和设置对应成员的值;3)定义用于检测用户身份的方法checkUser(),方法原型如下:public boolean checkUser(String uName, String password);其业务逻辑为若用户名为admin,密码为123456,则返回为true,否则返回false。程序文件名为:

2022-05-13 16:23:02 3293 2

原创 判断一个表示文件名的字符串是否是一个java的源程序文件名

public class StringDemo2 { public static boolean isJavaFielName(String filaName){ //String[] split = filaName.split("\\."); //return split[split.length - 1].equals("java"); int x = filaName.indexOf("."); String str = f..

2022-05-13 16:20:29 475

原创 LeetCode155.最小栈 详解

class MinStack { public Stack<Integer> s1; public Stack<Integer> minStack; //new出一个Stack public MinStack() { s1 = new Stack<>(); minStack = new Stack<>(); } //我们设置了两个栈 往里面存的时候 我们可以多考虑一下 //

2022-05-12 23:40:25 129

原创 队列的方法如何使用

最简单的一种就是使用Queue的这个已有的类去实例化一个对象,在使用其方法去判断public static void main(String[] args) { Queue<Integer> queue = new LinkedList<>(); queue.offer(12); queue.offer(23); queue.offer(34); queue.offer(45); Int

2022-05-11 23:27:27 217

原创 队列的创建 造轮子

public class MyLinkedList{ class Node { public int val; public Node next; public Node (int val) { this.val = val; } } public Node head; public Node last; public int usedSize; //读入队列 p

2022-05-11 23:15:14 96

原创 LeetCode力扣:2. 两数相加 详解

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * }

2022-05-11 12:00:00 233

原创 LeetCode力扣: 1.两数之和

本题主要用哈希方法去做我们用target - nums[i]的方法去找for循环中每个在哈希map里面的值去对比 就可以减少时间复杂度附加内容:map.get()是获取value的值map.put()是将(key, value)放进去map.containsKey()是找map里面是否有你想要的key值,如果有就返回true,否则反之。class Solution { public int[] twoSum(int[] nums, int target) { HashMa

2022-05-10 21:06:21 119

原创 继承,接口的简单具体实现(代码展示)

package demo3;import java.awt.*;class Animal{ public String name; //构造方法 public Animal(String name){ this.name = name; } //每个动物都会吃东西 public void eat(){ System.out.println(this.name + "正在吃饭"); }}//但不是每个动物都会

2022-04-27 12:30:00 561

原创 抽象类的一些基础使用方法 适合零基础java使用

package demo2;//抽象类/** * 抽象方法指的是没有写方法内部的实现的的方法 * 使用abstract修饰的类,就是抽象类 * 使用abstract修饰的方法 就是抽象方法 * 抽象类不能够进行实例化 new抽象类(); * 里面的成员变量和成员方法都是和普通类一样,只不过就是不能进行实例化 * 当一个普通的类 继承这个抽象类之后 那么这个普通类必须重写这个抽象类当中所有的抽象方法 * 抽象类存在的最大意义就是为了被继承 * 抽象类也可以发生向上转型 进一步发生多态

2022-04-26 23:22:42 592

原创 接口的使用方法(代码 + 具体每行代码的解释)

接口是一种行为的规范和标准。package demo3;/** * 接口使用关键字interface来修饰 * 接口当中的成员方法 只能是抽象方法 所有的方法都默认是public abstract * 接口当中的的成员变量 默认是public static final * 接口当中的方法 如果要实现需要用default来修饰 * 接口当中的静态方法 可以有具体的实现 * 接口不能进行实例化 new接口 * 一个普通的类 可以通过implements来实现这个接口 * 但要重写接口里面

2022-04-26 10:44:14 645

原创 java面向对象:多态,抽象类

目录标题继承 和 多态理解多态抽象类接口实现多个接口常用接口继承 和 多态继承:对共性的一个抽取,使用extends关键字来实现的语法:A extends BA:子类B:父类意义:为了代码的复用。注意:子类继承了父类,那么子类在构造的时候,需要先帮助父类来进行构造,需要在子类的构造方法中,使用super关键字来显示的调用父类的构造方法。super和this访问修饰限定符 private 包访问权限 protected public父类的private修饰的成员变量是否被继承了?不

2021-11-15 17:51:47 290

原创 JAVA类和对象(笔记记录,约一万字超详细解释)

目录标题什么是类?什么是对象?类的成员static修饰重写打印封装什么是类?什么是对象?class 类名{//属性 -> 字段 -> 成员变量//方法 -> 成员方法 }class Person{ public String name; public int age; public void eat(){ System.out.println(name+"正在吃饭!"); } public void print(

2021-11-01 12:21:48 176

原创 JAVA的IDEA文件的创建

IDEA的文件创建首先我们会看到这个界面,然后我们Add JDK找到你存放jdk的路径点击就好,按照操作就是add jdk -> c->java->Jdk我们点击下面蓝色的Next进入下一个操作继续Next然后设置你的class类的文件名就行最好就是大驼峰设置文件名比如说TestDemo这时候文件设置完毕了,撒花。...

2021-10-14 01:07:14 388

原创 初识Java,理解java部分原理知识和c语言的对比

目录JAVA的语法如何运行?java程序的书写JAVA的语法public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld"); }关于public的疑问大概解释一下就是访问修饰限定符,这个并不是本文的重点内容,以后会详细介绍class:是一个关键字,用来定义一个类。HelloWorld :类的名称这几个的组成是java当中main函数的固定写法,而函数也

2021-10-11 17:08:46 176

原创 函数栈帧手写版

2021-08-25 18:27:15 93

原创 初阶结构体的学习

目录标题结构体类型的声明结构体成员的访问结构体传参结构体类型的声明struct Book{ char name[20]; char author[20]; float price;}b1,b2;//b1 b2是全局变量,存放在静态区struct Point{ int x; int y;}p1,p2;//p1 p2 是全局变量int main(){ struct Book b; //局部变量 存放在栈区 struct Point p; return 0;}另一种特

2021-08-16 19:56:06 149

原创 指针运算,二级指针,指针数组的学习,适合初学者

目录标题指针运算二级指针指针数组指针运算指针±整数指针-指针指针的关系运算1.1指针±整数首先,我们来聊聊指针加整数,来看看这个代码, 我将会详细分析。#include <stdio.h>#define N_VALUES 5int main(){ float values[N_VALUES]; float* vp; for (vp = &values[0]; vp < &values[N_VALUES];) { *vp++ = 0;

2021-08-16 17:13:30 217

原创 指针初阶入门学习1,适合初学者,易理解(详细版本)

目录标题指针是什么?指针变量三级目录指针是什么?我们来先想想地址是什么?,地址是不是就是指向了一个确定的内存空间,就像身份证一样,身份证号码就是确定你的身份唯一的一个东西,所以地址形象的就被称为指针。地址就是指针。指针变量如果我们用 int a = 10; 来定义变量a的值,用编译器编译出来的地址就是这些可以看得出是由三级目录...

2021-08-08 03:05:16 183

原创 关于算数转换的问题

继上一篇整数提升后我们继续聊聊算数转换,首先有个问题就是难道除了char, short之外,其他的如float, double,long double, unsigned long int , int ,long int都不能转换吗,其实不然,这就牵扯到了算数转换。转换顺序:long doubledoublefloatunsigned long intlong intunsigned intint把精度小的转换成精度大的,由小往上进行转换。例如:int main(){ int

2021-08-05 19:07:38 107

原创 整型提升的基本认知

整形提升顾名思义就是当一个变量大小达不到一个整型大小这种表达式里面的数据时候,他就会发生整型提升。用一些代码来举例子:int main(){ char a = 3;// //00000000000000000000000000000011 //00000011 - a 截断,因为char只有一个字节所以只有八个比特位 char b = 127; //000000000000000000000001111111 //01111111 - b; // a 和b都是char类型,自

2021-08-05 18:35:17 88

原创 操作符的一些基本介绍和使用详解

目录标题移位操作符位操作符单目操作符移位操作符左移操作符 移位规则:左边抛弃、右边补0右移操作符 移位规则:首先右移运算分两种:逻辑移位 左边用0填充,右边丢弃算术移位 左边用原该值的符号位填充,右边丢弃警告⚠ : 对于移位运算符,不要移动负数位,这个是标准未定义的。 例如:int num = 10;num>>-1;//error并且左移右移操作符只适用于整型,比如:int main(){ int a = 10; int b = a >> 1;

2021-07-30 17:42:24 107

原创 数组的一些详细介绍,适合初学

重点要目1. 一维数组的创建和初始化2. 一维数组的使用3. 一维数组在内存中的存储4. 二维数组的创建和初始化5. 二维数组的使用6. 二维数组在内存中的存储7. 数组作为函数参数数组名是什么?1. 一维数组的创建和初始化数组的创建:数组是一组相同类型元素的集合。 数组的创建方式:type_t arr_name [const_n];type_t 是指数组的元素类型const_n 是一个常量表达式,用来指定数组的大小一些例子:int arr1[10];int count =

2021-07-27 22:48:06 135

原创 快速掌握基础函数递归,打牢基础最佳选择,看了不后悔

重点要点目录函数的声明和定义函数递归函数的声明和定义函数声明:告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,无关紧要。函数的声明一般出现在函数的使用之前。要满足先声明后使用。(int Add(int x, int y)这个就是函数的声明)函数的声明一般要放在头文件中的。(头文件就是.h文件,如果你想使用.h文件要记得在源文件中包含一下文件名。如:#include “add.h”)双引号一般都是使用在自己定义的文件。如果你把add.c文件封装起来卖给别人的话,买家

2021-07-25 18:42:43 169

原创 教你最快掌握函数的基本使用,不再迷茫。

重点要目1. 函数是什么2. 库函数3. 自定义函数4. 函数参数5. 函数调用1. 函数是什么数学中我们常见到函数的概念。但是你了解C语言中的函数吗? 维基百科中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method,subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会

2021-07-23 23:16:26 563

原创 两种方法实现字母的大小写转换

第一种:用ASCII码值相加或相减32int main(){ int ch = 0; while ((ch = getchar()) != EOF) { if (ch >= 'A' && ch <= 'Z') { printf("%c\n", ch + 32); } else { printf("%c\n", ch - 32); } getchar(); } return 0;}第二种:用函数来实现转换字母isup

2021-07-05 23:26:25 1776

原创 判断输入的字符是不是字母

方法一:用ASCII码值来判断int main(){ int ch = 0; while ((ch = getchar()) != EOF) { getchar(); if ((ch >= 'a' && ch <= "z") || (ch >= 'A' && ch <= 'Z')) { printf("%c is an alphabet\n", ch); } else { printf("%c is not

2021-07-05 23:05:52 3715

原创 关于多组输入中如何在while中把\n销毁

第一我们很熟悉的就是用getchar()直接把\n给读取掉,而避免之后出现错误。所以我准备说两种scanf的方法来直接在while括号中把\n回车键给销毁第一种:while(scanf("%c\n", &ch) != EOF)在%c的后边直接写一个’\n’,然后在输入的时候就会销毁掉这个\n字符不会为下次留下空白字符的隐患第二种:while(scanf(" %c", &ch) != EOF)在%c的前面写一个空格会销毁掉前面所有的空白字符,然后读取一个字符...

2021-07-05 22:51:24 105

原创 如何判断一个字符是否在一串字符串中出现?

第一种方法比较常见,用数组中的下标进行一一对比来判断:int main(){ char ch = 0; char vowel[] = "AaEeIiOoUu"; while ((ch = getchar()) != EOF) { getchar(); int i = 0; for (i = 0; i < 10; i++) { if (ch == vowel[i])//输入的字符与字符串各个数进行对比 { printf("Vowel\n"); br

2021-07-05 22:44:55 5267

原创 关于c语言中的两种多组输入方法

while(scanf("%d", &n) != EOF)while(~scanf("%d, &n))我主要解释一下第二种,一味地一种比较常见。首先第一种我们去查询EOF的定义我们就发现EOF代表的就是-1,而第二种的波浪号是c语言的一种操作符,也就是按位取反。什么是按位取反?比如说10101按位取反就是01010,首先EOF按位取反就是100000000000000000000000000000001-原码111111111111111111111111111111111111.

2021-07-05 21:52:29 1540

原创 如何输入一串字符?

今天在刷题的时候突然遇到一个题,困扰了很长时间,所以写个博客记录一下。如题,如何输入一串字符来判断哪个字符多,然后遇到某个数字停止读取。这一类题先是第一个问题:如何输入一串字符?我用的函数是:gets(ch);这个函数可以输入一串字符,然后第二个问题就是:如何设置多组输入中如何遇到某个数比如说0停止读取?这种就可以直接使用:while(ch[i] != ‘0’)直接在引号里设置就行。接下来直接上全部代码。#include <stdio.h>#include <ctype

2021-07-05 21:15:56 3323

原创 c语言实现变种水仙花

这道题主要还是for循环操作。题目要求判断五位数的水仙花。所以我们可以在第一行for循环写上判断的数的范围。然后在设定第二行的for循环, 因为水仙花主要是以同一个数不同的分裂的数来构成,比如说123 分裂成 1 23, 12 3,所以判断的设置就可以以 /(除以)10 和 %(余数)来定义。 所以设置成循环模式,就可以更好地判断。题目要求所有拆分后的乘积之和等于自身,我们就可以设置一个数可以更好的接收这些相加的乘积之和,不过在水仙花的数字变了之和,这个乘积之和要记得设置归零,不然会出现错误。int

2021-07-04 21:07:51 240

原创 c语言实现计算一年某个月有多少天,多组输入

这题不难,掌握这些要素即可完成闰年的2月是29天平时的2月是28天1 3 5 7 8 10 12月是 31 天4 6 11是 30 天#include <stdio.h>int main(){ int year, month; while(scanf("%d %d", &year, &month) !=EOF) { if(year % 4 == 0 || (year % 4 == 0 && year

2021-06-30 18:38:42 1497

原创 输入n个整数,输出前五个最高的数字(简单易懂版)简单冒泡排序算法

写这题的时候花了很多时间去理解,最后终于弄懂了,还写了一张流程图来看,也写出了一个易于初学者理解的代码,本身自己能力也菜,所以从简单和容易理解出发就完事了。#include <stdio.h>int main(){ int arr[40] = { 0 }; int n = 0; int temp = 0; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("

2021-06-29 22:48:26 496

原创 计算1!+2!+3!+...+n!,阶乘计算(简单版和优化版)

简单版#include <stdio.h>int main(){ int n; scanf("%d", &n); int sum = 0, ret = 1; for(int i = 1; i <= n; i++) { ret = 1;//注意这个地方 for(int j = 1; j <= i; j++) { ret = ret * j; }

2021-06-28 23:50:48 871

原创 九九乘法表

c语言实现九九乘法表#include <stdio.h>int main(){ int ret = 0; for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { ret = i * j; printf("%d * %d = %-2d ", i, j, ret); } printf("\n"); } return 0;}

2021-06-28 22:19:46 64

原创 求十个数中的最大数,简单版

#include <stdio.h>int main(){ int arr[10]; for (int i = 0; i < 10; i++) { scanf_s("%d", &arr[i]); } int m = arr[0]; for (int j = 1; j < 10; j++) { if (m < arr[j]) { m = arr[j]; } } printf("%d", m); return 0;}

2021-06-28 21:08:51 254

原创 c语言求100-200之间的素数/质数(简单版和优化版)

废话不多述,直接开整。简单版:int main(){ int count = 0; for (int i = 100; i <= 200; i++) { //拿2 - i-1 之间的数字去试除i; int flag = 1; for (int j = 2; j < i; j++) { if (i % j == 0) { flag = 0; } } if (flag == 1) { printf("%d ", i); c

2021-06-28 02:50:03 3685 1

原创 给定n个整数和一个整数x,从n个整数中判断x出现几次

#include <stdio.h>int main(){ int a; int c = 0; int b = 0; scanf("%d", &a); int arr[a]; for(int i = 0; i < a; i++) { scanf("%d", &arr[i]); } scanf("%d", &c); for(int j = 0; j

2021-06-27 18:37:48 528

原创 猜数字游戏代码设计(c语言简单版本)

要点目录游戏游戏前言:最近又咸鱼了,决定恢复正常的学习状态,希望自己能够继续认真下去,坚持学习。//猜数字游戏逻辑设计//1.生成一个随机数//2.猜数字(大,小,对了)//3.反复玩游戏//反复弹菜单(所以使用do while) 先执行后判断比较适合这个情况#include <stdio.h>#include <stdlib.h>#include <time.h>void menu()//不需要返回类型和值所以写void,menu也没有参

2021-06-27 16:39:19 656

空空如也

空空如也

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

TA关注的人

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