20172316 2018-2019-1《程序设计与数据结构》第六周学习总结
教材学习内容总结
第十章 树
树:和之前学到的栈、队列、列表一样是一种集合,但不同的是,树是一种非线性结构,它的元素被组织成为层次结构。
树的分类:
- 度(order),
万事都有一个度,度就是书中任一结点可以具有的最大孩子(Child)数,如图中A的孩子数为2,C的孩子数为1 ,整个树孩子数最多为2,则度为2; 根据一棵树的度可以将其称为n元树,图中为二元树(二叉树)。
没有孩子的结点就是树的叶子,是树的最终端。
- 树的“平衡”,树的所有叶子在同一层或者相差不超过一层,称之谓平衡;
- 完全树,在平衡树的基础上,底层所有叶子紧靠左侧
(向左看齐(⊙ˍ⊙)(←_←)(←_←)(←_←) (←_←))))))。。。)
- 满树,一个n元树的每个结点都有n个孩子,则为满树。
实现树,同样有两个方向:数组实现和链表实现:
数组实现又分两个原则方法:计算策略和模拟链接策略;
树的遍历:四种:前序遍历、中序遍历、后序遍历、层序遍历。
前序:当前→左孩子→右孩子。拿图三举例:输出顺序为abdecf
中序:左孩子→当前→右孩子。以图三为例:dbeacf
后序:左孩子→右孩子→当前。debfca
层序:一层一层地遍历。abcdef
教材学习中的问题和解决过程
问题:模拟链接策略用数组实现树的理解?
书中的图片有点抽象,只好仔细阅读。理解如下。
代码调试中的问题和解决过程
无
代码托管
(statistics.sh脚本的运行结果截图)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 6/6 | |
第二周 | 771/771 | 1/2 | 16/22 | |
第三周 | 562/1233 | 1/3 | 15/37 | |
第四周 | 1503/2736 | 2/5 | 15/52 | |
第五周 | 1152/3888 | 1/6 | 10/62 | |
第六周 | 787/4675 | 1/7 | 10/72 |
结对互评
参考资料
- 《Java程序设计教程(第八版)》电子工业出版社
- 《使用码云和博客园学习简易教程》
- 《使用开源中国(码云)托管代码》
- 数据结构(一) 单链表的实现-JAVA