博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七周学习总结
阅读量:5314 次
发布时间:2019-06-14

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

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

教材学习内容总结

本周学习了教材第十六章,关于树的内容。

  • 树:由一组结点及一组边构成,结点用来保存元素,边表示结点之间的联系。树是非线性结构。
  • 结点的分类:父结点,子结点,兄弟结点,根节点,叶结点,内部结点。
  • 树的其他元素:高度(深度),度,层。
  • 遍历树的四种方法:先序遍历,中序遍历,后序遍历,层序遍历。
  • 二叉树上第i层上的结点数目最多为2^(i-1)(i>=1)
  • 深度为k的二叉树至多有2^k-1个结点(i>=1)
  • 包含n个结点的二叉树的高度至少为log2(n+1)
    -在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1.
  • 除了知道先后序树的表达式,其他两两组合可以确定一个树。

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

  • 问题1:在课本中和上课提到的用中先序表达式确定二叉树,中后序表达式确定是二叉树的方法不是很熟练。
  • 问题1解决方案:在下课之后多看了几个,总结出来的经验是:先序和后序表达式可以找出根节点,然后在中序表达式中通过根节点的位置将表达式断为两个部分,即二叉树的左右子节点的部分,然后用同样的方法进行递归操作。
  • 问题2:继上个问题,为什么先序和后序表达式不能确定一个二叉树?
  • 问题2解决方案:下课后我自己又尝试了几个练习,参阅了网上的类似的问题的答案后有了自己的想法:先序和后序放到一起只能找到父结点,而不能在中序表达式中通过父结点的位置把子结点分离,所以没办法确定一个二叉树。

代码调试中的问题和解决过程

  • 问题1:上星期没发现ArrayStack中的pop方法存在问题,导致测试中只有peek方法(因为这个测试中不涉及pop操作)测试成功。
  • 问题1解决方案:跟袁逸灏交流后我发现在这个方法里我在输出出栈的那个元素的时候错误地将倒数第一个元素输出成了初始容量减一位置的元素(初始容量为10,假如我只输入了4个元素那么pop方法得到的元素为空),修改后我利用表示size的公有的变量count达到了目的。

image

本周结对学习情况

    • 结对学习内容
      • 在数组实现栈中,我们讨论了关于pop方法的实现问题,感谢袁逸灏同学的帮助让我发现我错误地调用了容量这个变量(实际上应该调用数组当前长度)。我更加重视了数组的容量与当前长度的区别。

其他(感悟、思考等,可选)

这周我充分认识到了单元测试,单步追踪的重要性。一个方法的一个变量写错了,可能导致单元测试中多个测试不通过。自己无法判断和修改的错误一定要及时请教。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 66/200 1/1 6/10
第二三周 370/400 1/2 12/18
第四五周 400/800 1/3 24/42
第六七周 800/1600 2/5 36/54

转载于:https://www.cnblogs.com/cs162315/p/7712461.html

你可能感兴趣的文章
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
怎么在windows7系统我的电脑中添加快捷方式
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>