笔记
文章平均质量分 70
小白嗯哼
这个作者很懒,什么都没留下…
展开
-
2021-03-20
1.先序遍历 访问根结点,递归处理左子树,递归处理右子树 2.中序遍历 递归处理左子树,访问根结点,递归处理右子树 3. 4.检查两棵树是否相同 体会递归 两个树相同=根结点相同&&左子树相同&&右子树相同 5.二叉树的最大深度(高度) =1+ max(左子树高度,右子树高度) 6.判断一颗二叉树是否是平衡二叉树 (这棵树上的任意节点的左右子树的高度差不超过1) 这两个都是平衡二叉树 基本思路:遍历二叉树,计算当前节点左右子树的高度差 public class BinaryTree{ publ原创 2021-03-21 11:36:06 · 103 阅读 · 1 评论 -
2021-02-01
数据结构(2) 一、算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。 时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。 二、时间复杂度:目来衡量一段程序执行快慢的指标.粗略的,定性的分析 1.概念:算法中的基本操作的执行次数 2.大O的渐进表示法 // 计算一下func1基本操作执行了多少次? void func1(int N){ int count = 0; for (int i原创 2021-02-01 14:09:26 · 182 阅读 · 0 评论 -
2021-02-01
进程(process) 实现并发编程的基本途径 线程(thread) 2.main(String[] args) 这个东西,叫做"命令行参数" (1)以前的时候操作系统都是使用命令行的方式操作的. 命令行, 咱们现在也会经常用到,尤其是操作Linux服务器的时候.Linux没有图形界面嘛?有的 服务器是在遥远的机房.如果通过图形界面操作服务器,就需要把服务器上的画面,以一帧一帧的图像的形式通过网络传输过来.一帧图片就几个MB,命令行的话,只需要传输一些简单的字符,几个K (2) 什么是命令行的参.原创 2021-02-01 14:05:58 · 107 阅读 · 0 评论 -
2021-01-27
1.Java 的异常体系. 描述Java标准库中提供的异常类都有哪些,并且分成哪几个类别 (1)图上的箭头其实就是"继承"或者"实现”这样的关系 Error是系统级别的异常,JVM内部使用的,普通程序猿不应该使用Error这个体系 Exception是应用级别的异常,普通程序猿应该要使用这一组系列. (2)受查异常:如果某个方法中抛出了这个异常,那么就必须对这个异常进行显式的处理(显式处理包含两种方案: 1.直接try catch,2.使用throws声明可能会抛出这个异常) (3)非受查异常:可以不显式原创 2021-01-27 11:30:24 · 145 阅读 · 0 评论 -
2021-01-24
1.抽象类extends 接口 implements (引入接口的意义是为了实现类似于“多继承"的效果) 接口相当于是一种约束,要求了实现该接口的类,必须重写所有的接口中的抽象方法. 接口是一个非常有用的语法机制,如果所有的代码都是一个人完成,此时接口的意义就不大了,如果这个代码需要很多人协同开发完成,此时接口就非常具有意义. 每个人需要负责一部分模块. 模块和模块之间往往需要一些相互调用. 模块A需要给模块B提供一些类/方法进行使用. 实现A模块的程序猿就可以和实现B模块的程序猿,约定一系列的inte原创 2021-01-24 16:12:06 · 137 阅读 · 0 评论 -
2021-1-22
C++的多态有两种体现形式 动态的多态就和Java差不多,需要使用virtual这个关键字,被这个关键字修饰的方法才能被子类重写. 2.Java中集合类.各种数据结构的内置实现.顺序表,链表,哈希表,二叉树… 使用集合类的时候,经常也会涉及到多态. 3. class A { public A(){ / / this的类型是A类型,实际对应的是整个子类的实例 //而A的父类就是0bject 了, Object没有 func方法 this.func(); } public voi...原创 2021-01-23 18:30:33 · 102 阅读 · 0 评论 -
2021-01-21
抓住规则 1.创建子类实例的时候,会先构造父类的实例(调用父类的构造方法) 2.⒉初始化顺序:先执行就地初始化,再执行代码块,再执行构造方法 New Z()这个地址没人保存,这行代码执行完毕之后就被GC判定成垃圾回收了,但还是做了一些事情: 3.构造父类实例 4.初始化成员 5.调用构造方法 class X{ Y y=new Y(); public X(){ System.out.print("X"); } } class Y{ public Y(){ System.out.print("Y原创 2021-01-21 17:34:56 · 329 阅读 · 7 评论 -
Java第七课
1.数组传参,相当于赋值 int [] a = arr; 赋值的时候并不是把原来的数组拷贝了一份得到新数组,而是把原有的数组的基础上,多起了一个别名 2.内置类型在进行=的时候,不是起别名 而是创建了新的变量 一、数组基本用法 1.什么是数组 本质上就是让我们能批量创建想同类型的变量 *在Java中,数组中包含的变量必须是相同类型 2.创建数组 基本语法 ①动态初始化 数据类型[]数组名称 = new 数据类型[]{初始化数据} ; int [] arr = new int []{1 , 2 , 3};原创 2021-01-21 17:27:20 · 98 阅读 · 0 评论 -
JAVA第五六课
一、 1.使用scanner.nextXXX()方法来读取数据,XXX表示数据类型 int num = scanner.nextInt(); double num= scanner.nextDouble(); next是读到空白符就结束了 nextLine是读到换行符就结束了 空白符:空格,换行\n,回车\r,制表\t,翻页\f,垂直制表符 2.如果某个类找不到定义,此时可以尝试使用Alt+enter让IDEA自动查找该类对应的位置,并自动import这个类 3.EOF:文件结束标志 windows上使用原创 2021-01-21 17:19:32 · 131 阅读 · 0 评论 -
Java第四课
一、分支语句 1.if基本语句格式 ① if(布尔表达式){ //条件满足时执行代码 } *if后面只能是布尔表达式,即为真执行否则不执行 ② if(布尔表达式){ //条件满足时执行代码 }else{ //条件满足时执行代码 } ③多分支情况 if(布尔表达式){ //条件满足时执行代码 }else if(布尔表达式){ //条件满足时执行代码 }…… else{ //条件满足时执行代码 } 闰年:世纪闰年(400整除原创 2021-01-21 16:48:39 · 939 阅读 · 2 评论 -
2021-01-20
面向对象编程 一、继承 目的:代码重用,类的重用 概念:父类(基类,超类)子类(派生类) 关键字: extends (扩展) 1.Animal这样被继承的类我们称之为父类,基类或超类,对于像Cat和Bird这样的类,我们称之为子类,派生类 2.语法规则 (1)基本语法 Class 子类extends 父类{ } 使用extends指定父类 JAVA中一个子类只能继承一个父类(C++/Python支持多继承) 子类会继承父类的所有public的字段和方法 对于父类的private的字段和方法,子类中是原创 2021-01-20 16:44:01 · 182 阅读 · 0 评论 -
JAVA第一课
JAVA第一课 一、基本环境搭建 1. JDK:JAVA开发工具包 JRE:JAVA运行环境 JVM:JAVA虚拟机,是JAVA的核心组件 2.JAVA的特点 跨平台(操作系统) 3.写一个简单的hello world,使用JDK中的Javac编译,java运行 二、 1.创建一个Test。java文件,.java后缀就是JAVA语言的源代码文件 2.JAVA是一个面向类的语言,java文件中创建的类的名字必须和文件名一致(包括字母大小写),习惯上,Java文件的首字母都是大写 3.C语言中叫做main函数原创 2020-12-05 23:55:15 · 127 阅读 · 0 评论 -
2020-12-01
初识C语言 一、第一个C语言程序 “Hello World” - 一个c程序由若干个头文件和函数组成 - main函数是程序入口 - 一个工程中main函数有且仅有一个 二、数据类型(基本) 1.整型 int 整型 short 短整型 long 长整型 (long long 更长的整型) char 字符数据类型(也是整型) 2.浮点型 float 单精度浮点型 double 双精度浮点型 在32位系统上:int 4个byte,short 2个byte,long 4个byte,float 4个byte,do原创 2020-12-03 14:19:14 · 179 阅读 · 0 评论