二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。 算法分析: 假设起始节点为1;先搜索1节点的右子节点为2,此时将1节点置为已搜索状态;判断2节点是否为已搜索状态,若未搜索,则将2节点置为已搜索状态;每次都优先搜索判断右侧邻接节点; 如图所示,若此时已搜索至2节点,发现右子节点为 Read More
posted @ 2020-07-17 15:11 梧桐更兼细雨_到黄昏 Views(439) Comments(0) Diggs(0)
深度优先搜索算法 深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点,可以这样理解:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。 我们可以看到,这样的访问策略是 Read More
posted @ 2020-07-17 14:54 梧桐更兼细雨_到黄昏 Views(1598) Comments(0) Diggs(0)
六、图 1. 图基本介绍 当我们需要表示多对多的关系时,这里我们就用到了图。 1.1 图的举例说明 图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可以称为顶点。 1.2 图的常用概念 1)顶点(vertex) 2)边(edge) 3)路径 4)无向图 5)有向 Read More
posted @ 2020-07-16 21:28 梧桐更兼细雨_到黄昏 Views(183) Comments(0) Diggs(0)
7. 快速排序 7.1 快速排序思路 快速排序的基本思想是任取待排序序列的一个元素作为中心元素(可以用第一个,最后一个,也可以是中间任何一个),习惯将其称为pivot,枢轴元素; 将所有比枢轴元素小的放在其左边; 将所有比它大的放在其右边; 形成左右两个子表; 然后对左右两个子表再按照前面的算法进行 Read More
posted @ 2020-07-10 13:39 梧桐更兼细雨_到黄昏 Views(192) Comments(0) Diggs(0)
冒泡排序 4.1 基本介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换 Read More
posted @ 2020-07-07 22:59 梧桐更兼细雨_到黄昏 Views(129) Comments(0) Diggs(0)
排序算法 1. 排序算法的介绍 排序也称为排序算法,排序是将一组数据,依指定的顺序进行排序的过程。 2. 分类 内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序: 数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。 常见的排序 3. 时间复杂度 3.1 时间复杂度 Read More
posted @ 2020-07-07 22:54 梧桐更兼细雨_到黄昏 Views(112) Comments(0) Diggs(0)
反射 概述:反射是框架设计的灵魂 java反射机制是在运行状态中,对任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java的反射机制。 利用反射技术可以将一个类中各个组成部分映射成一个个对象。 反射 Read More
posted @ 2020-07-05 13:03 梧桐更兼细雨_到黄昏 Views(110) Comments(0) Diggs(0)
多态 继承的多态问题:一个父类中的方法可有一个或多个子类继承或重写,所以我们在调用方法时不知道自己调用的是哪个子类的方法,只有当运行时才会知道。基于继承的实现机制主要表现在父类和继承该父类的一个或多个子类对某些方法的重写,多个子类对同一方法的重写可以表现出不同的行为。不同的对象可以执行相同的行为,但 Read More
posted @ 2020-07-05 13:01 梧桐更兼细雨_到黄昏 Views(113) Comments(0) Diggs(0)
接口 1、概述: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 比如,一个子类需要继承多个类的全部方法,常见的继承方法无法实现,接口可以实现全部继承的目的,但并不是继承; Read More
posted @ 2020-07-05 12:57 梧桐更兼细雨_到黄昏 Views(115) Comments(0) Diggs(0)
一、封装 1、封装概述: 面向对象编程语言是对客观世界的描述,客观世界里的成员变量都是隐藏在对象内部,外界无法直接进行操作。封装可以认为是一个保护罩,可以防止该类中的成员变量和方法被其他类随意访问和修改。要访问该类的数据,必须通过指定的方法。 2、高内聚低耦合 高内聚:类内数据操作细节自己完成,不允 Read More
posted @ 2020-07-04 13:22 梧桐更兼细雨_到黄昏 Views(178) Comments(0) Diggs(0)