20172316 《程序设计与数据结构》第六周学习总结

20172316 2018-2019-1《程序设计与数据结构》第六周学习总结

教材学习内容总结

第十章 树

:和之前学到的栈、队列、列表一样是一种集合,但不同的是,树是一种非线性结构,它的元素被组织成为层次结构。

树的分类

  1. 度(order),万事都有一个度,度就是书中任一结点可以具有的最大孩子(Child)数,如图中A的孩子数为2,C的孩子数为1 ,整个树孩子数最多为2,则度为2; 根据一棵树的度可以将其称为n元树,图中为二元树(二叉树)。

没有孩子的结点就是树的叶子,是树的最终端。

  1. 树的“平衡”,树的所有叶子在同一层或者相差不超过一层,称之谓平衡;

  1. 完全树,在平衡树的基础上,底层所有叶子紧靠左侧

(向左看齐(⊙ˍ⊙)(←_←)(←_←)(←_←) (←_←))))))。。。)

  1. 满树,一个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

结对互评

唐才铭19
王文彬29

参考资料

原文地址:https://www.cnblogs.com/zhaoqianchen/p/9853108.html