1.本周学习总结

1.1思维导图

1.2学习体会

本周学习了树的相关知识,了解了树结构体的应用和基本操作

学习了二叉树的遍历,创建以及哈夫曼树的相关操作

通过树的构建等操作熟练了递归的使用

2.PTA实验作业

2.1

二叉树叶子结点带权路径长度和

2.1.1 设计思路

if i>len-1 //超过最大节点数
return NULL
if str[i]=='#' //孩子节点为空
return NULL
为节点各项赋值
i=temp
while(temp > 1) //由i值计算元素层次
temp/=2
num++
bt->wpl=num
递归建左孩子节点
递归建右孩子节点
int wpl=0
if 树为空
return 0
if 叶子节点
wpl=tree->data*tree->wpl
return wpl
wpl+=左孩子节点权带路径和
wpl+=右孩子节点权带路径和
return wpl

2.1.2 代码截图





2.1.3 本题PTA提交列表说明

开始时使用不带路径长的结构体,在GetWpl函数中另行计算路径长,一个测试点不能通过

重新设计了结构体,简化计算后正确

2.2

二叉树层次遍历

2.2.1 设计思路

if 树为空
cout << NULL
return
bt进队
while 队不空
t=队头元素
按格式输出t
t出队
if 有左孩子
左孩子进队
if 有右孩子
右孩子进队

2.2.2 代码截图







2.2.3 本题PTA提交列表说明

输出格式判定代码错误

修改判定条件后正确

2.3

修理牧场

2.3.1 设计思路

创建递增优先队列
for i=0 to num
各长度进队
while (队不空)
队头两元素出队
temp+=队头两元素和
队头两元素和进队
返回temp

2.3.2 代码截图

2.3.3 本题PTA提交列表说明

在提交之前用了n种(完全错误的)思路解决这题,一直跑不出结果就放着了

上课时老师讲了priority_queue的解法,发现用priority_queue的做法极度简便,一次过

3.阅读代码

3.1 题目

二叉树的右视图

3.2 解题思路

本题相当于使用层次遍历取各层最右节点

1.对树进行层次遍历

2.从右至左将元素进队

3.将队头元素加入链表

4.返回链表

3.3 代码截图

3.4 学习体会

本题复习了个人较不熟练的层次遍历操作

学会利用队列取得每层最边缘元素

最新文章

  1. json日期转换
  2. How to install OpenResty
  3. Android实现多次闪退清除数据
  4. SQL 结构化查询语言
  5. Gstreamer中加入�x265编解码器
  6. python3 介绍
  7. 15. 3Sum(中等)
  8. MySQL类型float double decimal的区别
  9. [深度学习工具]&#183;极简安装Dlib人脸识别库
  10. 在Ubuntu上快速搭建基于Beego的RESTful API
  11. Choosing web framework: ASP.NET MVC vs Django Python vs Ruby on Rails(转载)
  12. windows下安装Mysql—图文详解
  13. Element分页组件prev-text和next-text属性无效?
  14. 目录命令(tree)
  15. Unity3D Adam Demo的学习与研究
  16. ajax跨域名
  17. 一个小栗子聊聊JAVA泛型基础
  18. 解题:USACO13NOV No Change
  19. ARM漏洞
  20. 4 MySQL--表(增删改查)

热门文章

  1. 剑指offer64 数据流中的中位数
  2. Python正则表达式计算器流程图
  3. pbr 5.2.1需使用中科大的源,豆瓣的不行
  4. 《剑指offer》51:数组中的逆序对
  5. 简单的cocos2dx笔试题
  6. 经常用到的js函数
  7. numpy学习(一)
  8. Python数据分析实战视频教程【小蚊子数据分析实战课程】
  9. 基于axios的vue插件,让http请求更简单
  10. 请问batch_normalization做了normalization后为什么要变回来?