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 学习体会

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

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

DS博客作业05—树的更多相关文章

  1. DS博客作业05——树

    1.本周学习总结 1.1思维导图 1.2学习体会 学习:相比于之前的数据结构,树多了很多性质,相应的也多了很多计算题,不得不说,专有名词也是颇多.觉得树最独特的地方就是它的兄弟.孩子结点,用以组成了它 ...

  2. DS博客作业——树

    DS博客作业--树 1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...

  3. DS博客作业08--课程总结

    DS博客作业08--课程总结 1.当初你是如何做出选择计算机专业的决定的? 1.1 经过一年学习,你的看法改变了么,为什么? 1.2 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 1. ...

  4. DS博客作业--07查找

    目录 DS博客作业--07查找 1.本周学习总结(0--2分) 1.思维导图 2.谈谈你对查找运算的认识及学习体会. 2.PTA实验作业(6分) 2.1.题目1:6-1 二叉搜索树的操作集 (30 分 ...

  5. DS博客作业05--查找

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业05--查找 这个作业的目标 学习查找的相关结构 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1.1 ...

  6. DS博客作业04--图

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业04--图 这个作业的目标 学习图结构设计及相关算法 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1. ...

  7. DS博客作业03--树

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业03--树 这个作业的目标 学习树结构设计及运算操作 姓名 黄静 目录 0. PTA得分截图 1. 本周学习总结 ...

  8. C语言l博客作业05

    问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9830 我在这 ...

  9. DS博客作业--课程总结

    1.当初你是如何做出选择计算机专业的决定的? 经过一年学习,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 刚开始填报志愿的时候,因为我个人是没有什么比较特别 ...

随机推荐

  1. python爬虫之路——Python的re模块及其方法

    介绍常用的三种方法:search(),sub(),findall() search():匹配并提取第一个符合规律的内容,然后返回一个正则表达式的对象 #提取字符串中的第一个数字 import re a ...

  2. Android(java)学习笔记118:BroadcastReceiver之 外拨电话的广播接收者

    1. 外拨电话的广播接收者: 首先我们示例工程一览表如下: (2)首先我们还是买一个收音机,定义一个OutCallReceiver继承自BroadcastReceiver,onReceive()方法中 ...

  3. nginx 的反向代理及缓存功能

    上游服务器的设置 server { #监听的IP及端口 listen 127.0.0.1:8080; #虚拟主机对硬解析的主机名 #server_name localhost; #charset ko ...

  4. ctrl+shift+f

    ctrl+f是在当前文件寻找某个参数 ctrl+shift+f是在整个工程目录下寻找某个参数

  5. python - 辨识alert、window以及操作

    selenium之 辨识alert.window以及操作 原创 2016年08月24日 11:01:04 4820 0 2 更多关于python selenium的文章,请关注我的专栏:Python ...

  6. oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

    oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect d ...

  7. 使用lua实现Spine动画的预加载

    创建spine动画有两种方法,分别是createwithfile和createwithdata. createWithFile是通过加载动作数据马上进行创建,如果spine动画中的json文件大小超过 ...

  8. runtime实践之Method Swizzling

    利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题.这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧.这 ...

  9. NOIP模拟赛 水灾

    大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上 ...

  10. Linux Ptrace 详解

    转 https://blog.csdn.net/u012417380/article/details/60470075 Linux Ptrace 详解 2017年03月05日 18:59:58 阅读数 ...