DS博客作业05—树
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—树的更多相关文章
- DS博客作业05——树
1.本周学习总结 1.1思维导图 1.2学习体会 学习:相比于之前的数据结构,树多了很多性质,相应的也多了很多计算题,不得不说,专有名词也是颇多.觉得树最独特的地方就是它的兄弟.孩子结点,用以组成了它 ...
- DS博客作业——树
DS博客作业--树 1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...
- DS博客作业08--课程总结
DS博客作业08--课程总结 1.当初你是如何做出选择计算机专业的决定的? 1.1 经过一年学习,你的看法改变了么,为什么? 1.2 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 1. ...
- DS博客作业--07查找
目录 DS博客作业--07查找 1.本周学习总结(0--2分) 1.思维导图 2.谈谈你对查找运算的认识及学习体会. 2.PTA实验作业(6分) 2.1.题目1:6-1 二叉搜索树的操作集 (30 分 ...
- DS博客作业05--查找
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业05--查找 这个作业的目标 学习查找的相关结构 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1.1 ...
- DS博客作业04--图
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业04--图 这个作业的目标 学习图结构设计及相关算法 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1. ...
- DS博客作业03--树
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业03--树 这个作业的目标 学习树结构设计及运算操作 姓名 黄静 目录 0. PTA得分截图 1. 本周学习总结 ...
- C语言l博客作业05
问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9830 我在这 ...
- DS博客作业--课程总结
1.当初你是如何做出选择计算机专业的决定的? 经过一年学习,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 刚开始填报志愿的时候,因为我个人是没有什么比较特别 ...
随机推荐
- Android商城开发系列(一)——开篇
最近在看尚硅谷的硅谷商城视频,想系统学习一下Android的商城开发流程,打算跟着视频的一步步做出一个商城,然后写博客总结记录一下整个商城的开发过程以及使用到的技术知识点,这个商城的最终效果如下图所示 ...
- mysql数据库备份/恢复
备份数据库(进入Mysql bin目录下/C:\Program Files\MySQL\MySQL Server 5.6\bin)本地安装mysql数据库 备份表结构及数据 mysqldump -hl ...
- 理解Postgres性能
目录[-] 理解Postgres性能 理解缓存和缓存命中率 理解索引用途 Heroku Dashboard示例 索引缓存命中率 理解Postgres性能 对于很多应用程序开发人员来说数据库就是一个黑盒 ...
- javaSe-SimpleDateFormat
SimpleDateFormat呢是一种可以将字符串转为日期或者日期转换成字符串的功能强大的不得了的类: import java.text.ParseException;import java.tex ...
- HDU 4507 吉哥系列故事——恨7不成妻 (数位DP)
题意: 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关: 1.整数中某一位是7: 2.整数的每一位加起来的和是7的整数倍: 3.这个整数是7的整数倍: 给定一个区间[L,R],问在此区 ...
- ABC3D创客项目:风力小车
随着互联网.开源硬件.电子信息等技术成熟应用,以及创新教育的大力普及,创新正成为青少年生活中最热门的话题之一:尤其新兴的3D打印技术将创意者.生产者.消费者合三为一,成为创新教育的又一大助力,每个学生 ...
- 徒手教你使用zookeeper编写服务发现
zookeeper是一个强一致[不严格]的分布式数据库,由多个节点共同组成一个分布式集群,挂掉任意一个节点,数据库仍然可以正常工作,客户端无感知故障切换.客户端向任意一个节点写入数据,其它节点可以立即 ...
- GitHub和码云的简单使用
年轻,又经历了初高大学的英语的纠缠,导致连最简单的语句都看不懂,我在慢慢寻找语言的快乐 GitHub 的简单使用 : https://www.cnblogs.com/zhcncn/p/3731707. ...
- 使用jquery-validate校验表单
注意: 表单校验(validation校验[需要下载JQuery-validate插件,而且必须要在引入JQuery插件之后,再引入validate插件/*validate是建立在JQuery之上*/ ...
- Kenneth A.Lambert著的数据结构(用python语言描述)的第一章课后编程答案
第6题:工资部门将每个支付周期的雇员信息的列表保存到一个文本文件, 每一行的格式:<last name><hourly wage><hours worked> 编写 ...
