- 顺序存储二叉树顺序存储二叉树的概念基本说明:从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。顺序存储二叉树的特点1)顺序二叉树通常只考虑完全二叉树2)第 n 个元素的左子节点为 2 * n + 13)第 n 个元素的右子节点为 2 * n + 24)第 n 个元素的父节点为 (n-1) / 25)n : 表示二叉树中的第几个元素顺序存储二叉树遍... 顺序存储二叉树顺序存储二叉树的概念基本说明:从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。顺序存储二叉树的特点1)顺序二叉树通常只考虑完全二叉树2)第 n 个元素的左子节点为 2 * n + 13)第 n 个元素的右子节点为 2 * n + 24)第 n 个元素的父节点为 (n-1) / 25)n : 表示二叉树中的第几个元素顺序存储二叉树遍...
- 二叉树-删除节点(1)如果删除的节点是叶子节点,则删除该节点 。(2)如果删除的节点是非叶子节点,则删除该子树。(3)测试,删除掉5号叶子节点和3号。思路分析(1)首先考虑如果树是空树root,如果只有一个root结点,则等价将二叉树置空。(2)因为我们的二叉树是单向的,所以我们要判断当前结点的子结点是否需要删除结点,而不能去判断当前这个结点是不是需要删除结点。(3)如果当前结点的左子节点不... 二叉树-删除节点(1)如果删除的节点是叶子节点,则删除该节点 。(2)如果删除的节点是非叶子节点,则删除该子树。(3)测试,删除掉5号叶子节点和3号。思路分析(1)首先考虑如果树是空树root,如果只有一个root结点,则等价将二叉树置空。(2)因为我们的二叉树是单向的,所以我们要判断当前结点的子结点是否需要删除结点,而不能去判断当前这个结点是不是需要删除结点。(3)如果当前结点的左子节点不...
- 二叉树-查找指定节点(1)请编写前序查找,中序查找和后序查找的方法。(2)并分别使用三种查找方式,查找 heroNO = 5 的节点(3)并分析各种查找方式,分别比较了多少次前序查找思路(1)先判断当前结点的no是否等于要查找的。(2)如果相等,则返回当前节点。(3)如果不相等,则判断当前结点的左子节点是否为空,如果不为空,则递归前序查找。(4)如果左递归前序查找,找到结点,则返回,否则就继... 二叉树-查找指定节点(1)请编写前序查找,中序查找和后序查找的方法。(2)并分别使用三种查找方式,查找 heroNO = 5 的节点(3)并分析各种查找方式,分别比较了多少次前序查找思路(1)先判断当前结点的no是否等于要查找的。(2)如果相等,则返回当前节点。(3)如果不相等,则判断当前结点的左子节点是否为空,如果不为空,则递归前序查找。(4)如果左递归前序查找,找到结点,则返回,否则就继...
- 斐波那契(黄金分割法)查找算法基本介绍黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位 数字的近似值是 0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神 奇的数字,会带来意向不大的效果。斐波那契数列 {1, 1, 2, 3, 5, 8, 13, 21, 34, 55 } 发现斐波那契数列的两个相邻数 的比例... 斐波那契(黄金分割法)查找算法基本介绍黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位 数字的近似值是 0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神 奇的数字,会带来意向不大的效果。斐波那契数列 {1, 1, 2, 3, 5, 8, 13, 21, 34, 55 } 发现斐波那契数列的两个相邻数 的比例...
- 插值查找算法1)插值查找原理介绍: 插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找。2)将折半查找中的求 mid 索引的公式 , low 表示左边索引 left, high 表示右边索引 right. key 就是前面我们讲的 findVal3) int mid = low + (high - low) * (key - arr[low]) / (arr[hig... 插值查找算法1)插值查找原理介绍: 插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找。2)将折半查找中的求 mid 索引的公式 , low 表示左边索引 left, high 表示右边索引 right. key 就是前面我们讲的 findVal3) int mid = low + (high - low) * (key - arr[low]) / (arr[hig...
- 查找算法分类顺序(线性)查找二分查找/折半查找插值查找斐波那契查找线性查找算法有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提 示找到,并给出下标值。代码实现:public class SeqSearch { public static void main(String[] args) { ... 查找算法分类顺序(线性)查找二分查找/折半查找插值查找斐波那契查找线性查找算法有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提 示找到,并给出下标值。代码实现:public class SeqSearch { public static void main(String[] args) { ...
- 分组、捕获、反向引用介绍分组:可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看做是一个子表达式/一个分组。捕获:把正则表达式中子表达式/分组匹配的内容,保存到内容中以数字编号或者显示命名的组里,方便后面引用,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。组0代表的是整个正则表达式。反向引用:圆括号的内容被捕获后,可以在这个括号后被使用... 分组、捕获、反向引用介绍分组:可以用圆括号组成一个比较复杂的匹配模式,那么一个圆括号的部分我们可以看做是一个子表达式/一个分组。捕获:把正则表达式中子表达式/分组匹配的内容,保存到内容中以数字编号或者显示命名的组里,方便后面引用,从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。组0代表的是整个正则表达式。反向引用:圆括号的内容被捕获后,可以在这个括号后被使用...
- 正则表达式三个常用类java.util.regex 包主要包括以下三个类,Pattern类、Matcher类和PatternSyntaxException(1)Pattern类Pattern对象是一个正则表达式对象。Pattern类没有公共构造方法。要创建一个Pattern对象,调用其公共静态方法,它返回一个Pattern对象。该方法接收一个正则表达式作为它的第一个参数。例如:Pattern... 正则表达式三个常用类java.util.regex 包主要包括以下三个类,Pattern类、Matcher类和PatternSyntaxException(1)Pattern类Pattern对象是一个正则表达式对象。Pattern类没有公共构造方法。要创建一个Pattern对象,调用其公共静态方法,它返回一个Pattern对象。该方法接收一个正则表达式作为它的第一个参数。例如:Pattern...
- 分组常用的分组构造形式(1)(pattern) 说明:非命名捕获。捕获匹配的子字符串。编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其他捕获结果则是根据左括号的顺序从1开始自动编号。(2)(?pattern) 说明:命名捕获。将匹配的子字符串捕获到一个组名称或者编号名称中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号代替尖括号,例如(?'name')(... 分组常用的分组构造形式(1)(pattern) 说明:非命名捕获。捕获匹配的子字符串。编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其他捕获结果则是根据左括号的顺序从1开始自动编号。(2)(?pattern) 说明:命名捕获。将匹配的子字符串捕获到一个组名称或者编号名称中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号代替尖括号,例如(?'name')(...
- 元字符-限定符用于指定其前面的字符和组合项连续出现多少次符号含义示例说明匹配输入*指定字符重复0次或者n次(无要求)(abc)*仅包含任意个abc的字符串,等效于\w*abc、abcabcabc+指定字符重复1次或者n次(至少一次)m+(abc)*以至少1个m开头,后接任意个abc的字符m、mabc?指定字符重复0次或1次(最多一次)m+abc?以至少1个m开头,后接ab或abc的字符串ma... 元字符-限定符用于指定其前面的字符和组合项连续出现多少次符号含义示例说明匹配输入*指定字符重复0次或者n次(无要求)(abc)*仅包含任意个abc的字符串,等效于\w*abc、abcabcabc+指定字符重复1次或者n次(至少一次)m+(abc)*以至少1个m开头,后接任意个abc的字符m、mabc?指定字符重复0次或1次(最多一次)m+abc?以至少1个m开头,后接ab或abc的字符串ma...
- 类加载介绍反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。(1)静态加载:编译时加载相关的类,如果没有则报错,依赖性太强。(2)动态加载:运行时加载需要的类,如果运行时不用该类,既是不存在该类,则不报错,降低了依赖性。类加载时机(1)当创建对象时 //静态加载(2)当子类被加载时,父类也加载 //静态加载(3)调用类中的静态成员时 //静态加载(4)通过反射 //动态加载... 类加载介绍反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载。(1)静态加载:编译时加载相关的类,如果没有则报错,依赖性太强。(2)动态加载:运行时加载需要的类,如果运行时不用该类,既是不存在该类,则不报错,降低了依赖性。类加载时机(1)当创建对象时 //静态加载(2)当子类被加载时,父类也加载 //静态加载(3)调用类中的静态成员时 //静态加载(4)通过反射 //动态加载...
- 获取Class类对象(1)前提:已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取,可能抛出ClassNotFoundException。实例:Class cls1 = Class.forName("java.lang.Cat");应用场景:多用于配置文件,读取类全路径,加载类。(2)前提:若已知具体的类,通过类的class获取,该方式最为安全可靠,程序... 获取Class类对象(1)前提:已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取,可能抛出ClassNotFoundException。实例:Class cls1 = Class.forName("java.lang.Cat");应用场景:多用于配置文件,读取类全路径,加载类。(2)前提:若已知具体的类,通过类的class获取,该方式最为安全可靠,程序...
- Class类介绍(1)Class也是类,因此也要继承Object类(2)Class类对象不是new出来的,而是系统创建的(3)对于某个类的Class类对象,在内存中只有一份,因为类只加载一次(4)每个类的实例都会记得自己是由哪个Class实例所生成的(5)通过Class对象可以完整的得到一个类的完整结构,通过一系列API(6)Class对象是存放在堆的(7)类的字节码二进制数据,是放在方法区... Class类介绍(1)Class也是类,因此也要继承Object类(2)Class类对象不是new出来的,而是系统创建的(3)对于某个类的Class类对象,在内存中只有一份,因为类只加载一次(4)每个类的实例都会记得自己是由哪个Class实例所生成的(5)通过Class对象可以完整的得到一个类的完整结构,通过一系列API(6)Class对象是存放在堆的(7)类的字节码二进制数据,是放在方法区...
- 网络编程网络通信(1)概念:两台设备之间通过网络实现数据传输。(2)网络通信:将数据通过网络从一台设备传输到另一台设备。(3)java.net包下提供了一系列的类或接口,供我们使用,完成网络通信。网络(1)概念:两台或多台设备通过一定物理设备连接起来构成了网络。(2)根据网络的覆盖范围不同,对网络进行分类:局域网:覆盖范围最小,仅仅覆盖一个教室或一个机房。城域网:覆盖范围较大,可以覆盖一个城... 网络编程网络通信(1)概念:两台设备之间通过网络实现数据传输。(2)网络通信:将数据通过网络从一台设备传输到另一台设备。(3)java.net包下提供了一系列的类或接口,供我们使用,完成网络通信。网络(1)概念:两台或多台设备通过一定物理设备连接起来构成了网络。(2)根据网络的覆盖范围不同,对网络进行分类:局域网:覆盖范围最小,仅仅覆盖一个教室或一个机房。城域网:覆盖范围较大,可以覆盖一个城...
- 线程的死锁介绍死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。注意:多个线程都占用了对方的锁资源,但不肯相让,导致了死锁,编程时一定要避免死锁的发生。应用案例public class DeadLock_ { public sta... 线程的死锁介绍死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。注意:多个线程都占用了对方的锁资源,但不肯相让,导致了死锁,编程时一定要避免死锁的发生。应用案例public class DeadLock_ { public sta...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签