![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
乘风破浪愿你更强
这个作者很懒,什么都没留下…
展开
-
算法题-电话号码的字母组合(递归)
当题目中出现 “所有组合” 等类似字眼时,我们第一感觉就要想到用回溯。定义函数 backtrack(combination, nextdigit),当 nextdigit 非空时,对于 nextdigit[0] 中的每一个字母 letter,执行回溯 backtrack(combination + letter,nextdigit[1:],直至 nextdigit 为空。最后将 combination 加入到结果中。题目来源: LeetCode给定一个仅包含数字2-9的字符串,返回所有它能表..原创 2021-06-01 15:24:49 · 286 阅读 · 0 评论 -
数据结构---图(理论)
为什么要有图?1.线性表局限于一个直接前驱和一个直接后驱关系2.树也只能有一个直接前驱也就是父节点3.当我们需要表示多对多的关系时,这里我们就用到了图图的基本介绍图是一种数据结构,其中结构可以具有零个或多个相邻元素,两个节点之间的连接成为边.结点也可以称为定点图的常用概念1.定点(vertex)2.边(dege)3.路径4.无向图5.有向图6.带权图图的表示图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)邻接矩阵::邻接矩阵是表示图形中定点之间相邻关系的原创 2021-04-30 14:24:37 · 147 阅读 · 0 评论 -
多路查找树
多叉树1.在二叉树中,每个节点只有一个数据项,最多有两个节点.如果允许每个节点可以有更多的数据项和更多的子节点,就是多叉树2.后面得2-3树,2-3-4树就是多叉树,多叉树通过重新组织节点,减少树的高度,能对二叉树进行优化3.举例说明(下面的2-3树就是一颗多叉树)B树B树的基本介绍B树通过重新组织节点,降低树的高度,并且减少I/O读写次数来提升效率1.如图B树通过重新组织节点,降低了树的高度2…文件系统及数据库系统的设计者利用了磁盘预读原理,将一个节点的大小设为一个页(页的大小通常为4原创 2021-04-29 23:09:35 · 142 阅读 · 0 评论 -
二叉排序树删除节点
删除节点总共有三种情况删除是叶子结点删除只有一颗子树的节点删除有两个子树的节点 第一种情况思路1.先去找到要删除的节点 targetNode2.找到tar的父节点3.确定tar是父节点的左子节点还是右子节点4.根据前面情况来删除 第二种情况1.先去找到要删除的节点 targetNode2.找到tar的父节点3.确定tar有左子节点还是右子节点4.tar是parentNode的左子节点还是右子节点5.如果tar有左子节点5.1 tar是partner的左子节点原创 2021-04-28 16:23:37 · 1260 阅读 · 0 评论 -
二叉排序树(BST)
介绍:二叉排序树:BST(Binary Sort(Search) Tree) 对于二叉树的任何一个非叶子节点,要求左子节点比当前节点值小,右子节点值比当前节点值大.如果有两个相隔相同的值,可以放在左子节点或右子节点package com.cl.TreeCon.BinarySortTree;public class BinarySortTreeDemo { public static void main(String[] args) { int [] arr ={7,3,1原创 2021-04-27 16:32:38 · 86 阅读 · 0 评论 -
赫夫曼编码-生成赫夫曼编码表
上一篇写的主要是关于如何根据给出的字节写出他的赫夫曼树.这一片是根据存在的字节转换成赫夫曼编码表形式为:32->01 97->100 100->11000新增的小段编码 /** * 思路: * 1.将赫夫曼编码表放在Map<Byte,String >中 * 形式为 32->01 97->100 100->11000 */ static Map<Byte, String> huffm原创 2021-04-27 14:44:33 · 366 阅读 · 0 评论 -
赫夫曼压缩
赫夫曼编码基本介绍:在计算机数据处理中,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。原理:通信领域中信息的处理方式 I- 定长编码通信领域中信息的处理方式 ‖- 变长编码通信领域中信息的处理方式 III- 赫夫曼编码...原创 2021-04-27 11:27:36 · 54 阅读 · 0 评论 -
赫夫曼树(一)
赫夫曼树一.介绍:1)给定n个权(每个节点的值)作为n个叶子节点,构造一颗二叉树,若该树的带权路径长度(wpl)达到最小,称这样的树为最优二叉树,也称哈夫曼树或者霍夫曼树2)赫夫曼树是带权路径长度最短的树,权值较大的节点离根较近二.概念:1)路径和路径长度:在一棵数中,从一个节点往下可以达到的孩子或者孙子节点之间的通路,成为路径.通路中分支的数目称为路径长度.若规定根节点的层数为1,则从根节点到L层节点的路径长度为L-12)节点的全及带权路径长度:若将树中节点赋给一个有着某种含义的数值,则这个数原创 2021-04-26 15:57:24 · 64 阅读 · 0 评论