树-01
节点的高度
节点到叶子节点的最长路径(边数)。
节点的深度
根节点到这个节点所经历的边的个数。
节点的层数
节点的深度+1。
树的高度
根节点的高度。
二叉树
每个节点最多有两个子节点(左子节点,右子节点)的树。
每个节点都有两个子节点的二叉树为满二叉树。
叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其它层的节点个数都要达到最大。这种二叉树叫完全二叉树
树的存储方式
树有两种存储方式,基于链表和基于数组。
基于链表的树
链表的每一个节点包含数据和分别指向左子节点和右子节点的两个指针。
基于数组的树
把根节点储存在下标为i=1的位置,左子节点储存在下标为2*i的位置,右子节点储存在下标为2*i+1的位置,以此类推。
完全二叉树适合用数组储存,非完全二叉树在这种储存方式下会有大量的空间浪费。因为一些数组总的位置不会储存数据。
二叉树的遍历
前序遍历:当前->左子树->右子树。
中序遍历:左子树->当前->右子树。
后序遍历:左子树->右子树->当前。