20182322 2019-2020-1 《数据结构与面向对象程序设计》第9周学习总结
教材第16章学习内容总结 本章的内容主要讲树,顾名思义树与队列、栈、列表最大的区别就在于,树是一种非线性结构,其元素是一种层次结构存放。 树: 用于描述树相关的术语有非常多,除了之前常用的结点(node)还有边(edge)、孩子、兄弟等等,其中我认为比较重要的有: 内部节点:非根节点,且至少有一个子结点 同胞节点:属于同一节点的子结点 叶节点:不包含任何子节点的结点 树的分类:可以有非常多的分类方式,但是最重要的标准是任一结点可以具有的最大孩子数目,成为度(order),n元树的定义也是由此定义的 树的数组实现:因为数组实现树比较麻烦,所以在树的数组实现中书上同样模拟了链接策略,如图所示。 树的遍历, 前序遍历:从根节点开始访问每一个节点及其孩子。如图: 中序遍历:从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树,然后是访问根节点,最后中序遍历根节点的右子树。如图: 后序遍历:从左到右先叶子后节点的方式遍历访问左右子树,最后访问根节点。如图: 层序遍历:从树的第一层,也就是根节点开始访问,从上到下逐层遍历,在同一层中,按从左到右的顺序结点逐个访问。如图: 二叉树 (二叉树极其重要,以至于用三级标题来写它,而不是一般的一个点。)二叉树又名二元树,它的每一个结点最多具有两个孩子结点。 二叉树 (二叉树极其重要,以至于用三级标题来写它,而不是一般的一个点。)二叉树又名二元树