博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20162318 《程序设计与数据结构》第九周学习总结
阅读量:5258 次
发布时间:2019-06-14

本文共 1025 字,大约阅读时间需要 3 分钟。

20162318 2017-2018-1 《程序设计与数据结构》第9周学习总结

教材学习内容总结

哈夫曼树

1 . 何为Huffman Tree?

哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。下面的图说明:

1062733-20171105181400826-411884619.png

2 . 如何构建Huffman Tree?

1.遍历森林,从中选出两个最小的节点。2.两个节点相加,将新节点作为它们的根节点3.在森林中删除那两个节点,并将它们的根节点加入森林4.重复上面的步骤用图说明:

1062733-20171105181419216-969778775.png

3 . 哈夫曼编码(重点)

指向左子树的分支表示”0”码,指向右子树的分支表示“1”码,取每条路径上的“0”或“1”的序列作为各个叶子节点对应的字符编码,即是哈夫曼编码,如图:

1062733-20171105181433638-297585443.png

5 .

1 .堆的概念

heep是一颗完全二叉树,其中每一个元素都要大于或小于它的所有孩子

2 . 向堆中添加元素(最大堆)

先将该元素作为叶节点,然后将其向上移动到合适的位置

3 . 从堆中删除最大元素(最大堆

把最后的叶节点来取代根,然后向下移动到适合它的位置

4 . 堆排序(重点)

由于堆拥有有序特性,so每一次都是删除根节点(最大堆),得到的排序将会是降序

优先队列

优先队列不是FIFO队列。它根据优先级排列元素,而不是根据它们进入队列的次序来排列。

教材学习中的问题和解决过程

  • 问题1:堆和二叉查找树的区别
  • 问题1解决方案:
二叉查找树:对于每个节点n,n的左子树中包含的元素都小于n中的元素,n的右子树中包含的元素都大于等于n中的元素。堆:其中的每个元素都要大于或小于它的所有孩子

1062733-20171105181457201-1011546821.jpg

上周考试错题总结

1062733-20171105181513685-1265747091.jpg

解析:虽然所有节点在完全相同的层次上的树是平衡的,但并不是所有的平衡树都具有这个属性。

结对及互评

本周结对学习情况

堆和哈夫曼树

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 0/0 1/1 10/10
第二周 200/200 0/1 18/38
第三周 300/500 2/3 22/60
第五周 632/1132 5/8 30/90
第六周 247/1379 2/10 15/105
第七周 840/2219 2/12 12/117
第九周 578/2787 2/14 13/130
  • 计划学习时间:16小时

  • 实际学习时间:13小时

转载于:https://www.cnblogs.com/cs162318/p/7788109.html

你可能感兴趣的文章
打开指定文件或文件夹
查看>>
tomcat 配置图片虚拟路径不起作用解决办法
查看>>
如何查询收发的短信息
查看>>
UVA 111 简单DP 但是有坑
查看>>
Mysql 数据库操作
查看>>
Python OS模块
查看>>
Python item的使用
查看>>
Java关键字:transient,strictfp和volatile简介
查看>>
SQL表中的自连接定义与用法示例
查看>>
hdu 1032 The 3n + 1 problem
查看>>
static关键字
查看>>
转:linux终端常用快捷键
查看>>
009.栈实现队列
查看>>
A-Softmax的总结及与L-Softmax的对比——SphereFace
查看>>
关于软件盘覆盖住布局
查看>>
Unity3D 控制物体移动、旋转、缩放
查看>>
UVa 11059 最大乘积
查看>>
UVa 12545 比特变换器
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
10个著名的思想实验1
查看>>