递归类型 按照编程技巧分啪 一、将复杂问题分解成两个子问题 1、平衡二叉树(LeetCode题库110题) 自上而下:算每个节点的平衡因子(即左右子树的高度差),判断是否满足条件。 可以分成两个子问题:求树的高度,和遍历树判断每个节点的是否满足条件 自下而上:在求深度的过程中,只要有一个子树不满足条 Read More
posted @ 2019-10-13 21:34 卑微芒果 Views(464) Comments(0) Diggs(0) Edit
一、递归问题模板 先解决剩余问题,在缩小规模 function recursion(大规模){ if (end_condition){ // 明确的递归终止条件 end; // 简单情景 }else{ // 在将问题转换为子问题的每一步,解决该步中剩余部分的问题 solve; // 递去 recur Read More
posted @ 2019-10-13 19:46 卑微芒果 Views(182) Comments(0) Diggs(0) Edit
一、顺序栈 二、链栈 存储结构 链栈实现 三、队列 存储结构 链队列 循环队列 这里使用了一个编程的小技巧,将操作打上了记号。 Read More
posted @ 2019-10-13 19:34 卑微芒果 Views(650) Comments(0) Diggs(0) Edit
一、图的基本概念 1、邻接点:对于无向图无v1 与v2之间有一条弧,则称v1与v2互为邻接点;对于有向图而言<v1,v2>代表有一条从v1到v2的弧,则称v2为v1的邻接点。 2、度:就是与该顶点相互关联的弧的个数。 3、连通图:无向图的每个顶点之间都有可达路径,则称该无向图为连通图。有向图每个顶点 Read More
posted @ 2019-10-13 19:25 卑微芒果 Views(1116) Comments(0) Diggs(0) Edit
一、定义与概念 1、二叉查找树又称为二叉排序树,它是一种特殊二叉树。 二叉查找树的定义为一颗空树,或满足如下性质的树: ①左子树非空,则左子树所有结点的值均小于根结点的值。 ②右子树非空,则右子树所有结点的值均大于(或大于等于)根结点的值。 ③左右子树也递归的定义为二叉查找树 二、二叉查找树的操作 Read More
posted @ 2019-10-11 11:35 卑微芒果 Views(308) Comments(0) Diggs(0) Edit
一、常见用语 1、逻辑结构:描述数据之间逻辑上的相关关系。分为线性结构(如,字符串),和非线性结构(如,树,图)。 2、物理结构:描述数据的存储结构,分为顺序结构(如,数组)和链式结构。 3、结点的度:一个节点子树(即分支)个数。 4、叶结点:也称为终端节点,指度为0的节点。 5、树的深度(高度): Read More
posted @ 2019-10-10 14:06 卑微芒果 Views(4725) Comments(3) Diggs(1) Edit
单链表 存储结构 1、头插法建表 2、尾插法建表 3、查找第i个节点 4、按值查找 5、计算链表长度 6、插入元素 7、打印链表 链表的删除操作就不说了,和上面的操作差不多,先找第i-1各元素,然后改指针就OK,比较简单。 循环链表,在表的首尾进行操作比较合适。 双向链表,寻找前驱节点比较合适。 操 Read More
posted @ 2019-09-27 17:57 卑微芒果 Views(442) Comments(0) Diggs(0) Edit
Object.hasCode()默认使用对象的地址计算散列码。 Object.equals()默认比较对象地址。 一、散列与散列码 Hash结构容器散列原理(大致的原理,没有必要较真) 数组保存ArrayList的引用,散列码就是数组的下标值。存储元素时计算散列码,找到元素所属List,用该对象eq Read More
posted @ 2019-09-20 19:51 卑微芒果 Views(163) Comments(0) Diggs(0) Edit
在UML中,描述两个类之间的关系,按照关系的强弱分为,实现=泛化>组合>聚合>关联>依赖。 这六种关系,是存在于UML中的概念,请不要和Java中的混淆。例如,UML中的组合,与Java中的组合,含义是不一样的。 类图是依赖于语言的,不同语言可能存在差别。 1、实现 实现:描述java中的imple Read More
posted @ 2019-09-18 20:46 卑微芒果 Views(467) Comments(0) Diggs(0) Edit
感觉这一章有点散,还是来说一下需要注意的点吧。 一、数组知识点 1、数组的初始化方式 数组分配空间,但是没有初始化,就是默认0值。 2、数组与容器的不同点 数组进行这样的向上转型是合法的,而List这样转型不合法,因为List<Fruit>与ArrayList<Apple>根本不是子类与父类的关系。 Read More
posted @ 2019-09-14 20:17 卑微芒果 Views(199) Comments(0) Diggs(0) Edit