自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 哈夫曼树讲解(最优二叉树)

class Node implements Comparable<Node> {//这个就是实现接口 实现了这个接口必须重新它里面的一个方法才行 也就是compareto方法。其实思路就是 每次拿出两个最小值的结点作为根节点 再合成一个新的结点 然后去掉使用的两个结点 把新的结点加入到数组里面。在创建哈夫曼树的时候 有一个额外的步骤 就是根据结点的权值进行排序 所以Node类需要实现Comparable方法。图示的arr似乎没排序 其实已经变化了的 因为变化的是list集合 而不是arr数组。

2023-03-30 22:48:19 215

原创 堆排序新版

首先先从最下面开始 所以就从这一棵子树开始排序 所以循环里面的i=arr.length/2-1 这里就是 1 注意arr.length/2是整除 所以就算结果是5/2=2.5 但是会取2 所以结果是1。再进行下一步 这里面的if就是进行排序了 就是判断子树的字节点和根节点的大小比值 然后根据情况进行结点交换。因为要进行堆的跳转 肯定要交换结点 所以设置了一个temp temp指向的是一个子树的根节点。为什么要比较 因为此时的i指向的是k 也就是左节点(此时的i是1 指向的结点值为6)

2023-03-30 19:53:59 63

原创 线索化二叉树

答:因为3结点是8的父节点 由于递归 3结点进入左递归的时候 就代表8进入了递归 8结束了全部递归后 就代表3结束了左递归 接下来应该指向自己线索化的过程了(中序) 所以此时的node变成了3。还是没变 但是结点10的左指针还有LeftType变化了 因为10是叶子结点 根本没有左结点 所以说结点10的右指针需要线索化 指向前驱结点。而且这也就是为什么当我点击下一步的时候 没有经过3结点的左递归 因为3结点的左递归就是8结点的全递归 已经经历过了 所以直接跳过。

2023-03-29 23:26:55 52

原创 二叉树的查找 具体实现

这是因为 到B结点 在经历了sout 左递归后 会 再进行右递归 就打印了D 所以还是一个思想各个结点的递归互不干涉。我不理解的一点 从A开始 一直左递归 所以打印了C之后 怎么会打印D(D是右子树)而不是我理解的 先递归了左边后 左边的再依次往上爬 再向右边。一个是左递归 一个是右递归 两者互不打扰 各自递归各自。可以把遍历的递归看成两部分。

2023-03-28 22:45:27 76 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除