遍历:
先序遍历【先访问根节点】
先访问根节点
再先序访问左子树
再先序访问右子树
详细解释:
先序排列:A B D C E F G
A为根节点,所以第一个是A;
然后访问A的左子树B,但B也是一棵树,则B为根节点;
然后访问B的左子树D,但D也是一棵树,则D为根节点;
然后再访问D的左子树,D的左子树为空,则访问D的右子树,D的右子树也为空,则D访问完成;
则B的左子树访问完毕,再访问B的右子树,B的右子树为空,则B访问完成,因此A的左子树也访问完成,再访问A的右子树;
C为A的右子树,但C也是一棵树,所以C为根节点,然后访问C的左子树E,E也为一棵树,因此也是根节点,然后访问C的右节点F…然后是G
中序遍历【中间访问根节点】
中序遍历左子树
再访问根节点
再中序遍历右子树
详细解释:
中序排列:B D C E A L F N Q M
A是根节点,所以先访问A的左子树B,因为B是一棵树,所以要先访问B的左子树,因为B的左子树为空,所以先是B,然后再访问B的右子树C,C也是一棵树,所以先访问C的左子树D,因为D的左子树为空,所以其次是D,C的左子树访问完之后就是C,然后就是C的右子树E,C已经满了,B也已经访问完毕,然后就是A,A的右子树是相同的道理
后序遍历【最后访问根节点】
先后序遍历左子树
再后序遍历右子树
再访问根节点
详细解释:
后序:B D M F L E C
A是根节点,所以先访问A的左子树B,因为B是一棵树,但是B的左子树和右子树都是空的,所以先是B;然后访问A的右子树C,C是一棵树,所以先访问C的左子树D,因为D的左子树和右子树都是空的,所以D;然后是C的右子树E,E也是一棵树,所以F,同理,所以先是M->F->L->->C