- 博客(6)
- 资源 (5)
- 收藏
- 关注
原创 红黑树笔记
二叉排序树在某些情况下层级过深,所以在查找的时候效率不好。二叉平衡树在二叉排序树的基础上进行了优化,两边的平衡因子最大不能超过1,在查找的时候效率比较好,但是在删除节点的时候就会非常糟糕,因为每次删除节点可能会伴随着整棵树的移动(如:左平衡操作,右平衡操作,平衡因子修改)。红黑树在二叉平衡树的基础上又进行了改进,它的左右子树的层次最多不超过一倍,删除节点时只需要找到此节点的后继节点,把后继...
2018-12-25 10:14:38 113
原创 AVL树(平衡二叉树)
概念:是一种二叉排序树,又称平衡二叉树,其中每一个节点的左子树和右子树的高度相差至多等于1。平衡因子:树上节点的左子树的深度减去右子树的深度的值。树上所有节点中,如果有一个节点的平衡因子的绝对值大于1 ,树就失去了平衡。最小不平衡子树:距离插入节点最近的,且平衡因子的绝对值大于1的节点为根的子树。左转,右转:当树失去平衡后,我们可以通过节点的旋转来使其达到平衡。 例:有一棵...
2018-12-19 17:07:36 388
原创 哈夫曼树
概念:哈夫曼树又称最优二叉树,是指对于一组带有确定权值的叶子结点所构造的具有带权路径长度最短的二叉树。首先要明白几个概念:路径:如图中每个结点之间的长度称为路径。结点路径长度:如下图,假如每个路径的长度为1,那么A的路径长度为0,。B,D的路径长度就为1 ,C的路径长度为2 。树的路径长度:每个结点的路径长度相加。权重:代表每个结点出现的频率(次数)。带权路径长度:...
2018-12-17 14:14:59 193
原创 树的存储结构
树的概念树是由多个结点组成,每个结点所包含子节点的个数称为结点的度,度为0的结点称为树的叶子结点,度不为0的结点称为分支结点。一起看下图:上图中d,e,f为叶子结点,a,b下面分别有两个结点,那么a,b的度为2,c下面有一个结点,c的度为1,d,e,f的度为0.。整棵树的度为所有结点中度最大的那个数。上图中数的度就为2,整棵树有三层,所以树的层次和深度分别为3。 一,树...
2018-12-06 15:39:01 219
原创 Android低功耗蓝牙 不回调onServicesDiscovered问题
搞了一个下午,搜来搜去还是没有解决问题。后来仔细想想gatt.discoverServices()是用来发现服务,之所以没有执行onServicesDiscovered是说明没有发现相关服务。那问题肯定就出在了gatt.discoverServices()。后来我尝试多执行几次gatt.discoverServices()。竟然可以回调了,而当只调用一次gatt.discoverSer...
2018-12-05 17:10:51 5861 7
原创 Android 插件换肤
市场上很多app支持换肤效果,并且还可以从网上下载皮肤包进行加载换肤,接下来就来聊一聊它的实现原理。思路:首先我们需要知道哪些控件需要实现换肤,有两种方法第一种:自己整理,通过findViewById一个个实例化出需要执行换肤的控件,在拿到颜色值,或图片后一个个去替换。第二种:在布局文件初始化的时候通过属性判断去找出需要换肤的控件。很明显第一种比较麻烦,而且不易维护。那么今天就...
2018-12-05 16:59:56 245
Android 组件化开发module间通信
2018-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人