这一章里,我们学习了关于树的各种内容,包括二叉树,森林,哈法曼树。

二叉树(一个结点只能有两个孩子结点):

构建:二叉树的构建可选用两种数据结构:数组和链表

遍历:二叉树的遍历有三种方式:先序遍历,中序遍历,后序遍历。

森林:

由若干个树组成

哈夫曼树:

给定N个权值作为N个叶子节点,构造一棵二叉树,若该树的带权路径长度达到最小。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

 

感觉与之前的内容相比,这一章的内容有点难,需要一定的空间想象能力,特别是在使用不同的存储结构或者是不同的遍历方法时。在遍历的时候,使用递归的方法能让我们的代码更加简洁,但是理解上就会有点难度,比如计算二叉树的深度时,用到的一句return NodeCount(T->lchile)+NodeCount(T->rchile),一行代码便把一个本来挺复杂的功能实现了。

而在这一次的实践1中,第二道代码题树的同构没能独立做出来,后来在上网参考资料模仿以及向同学请教后才完成了代码