二叉树的前序遍历、中序遍历、后续遍历及层序遍历

前序遍历定义是先访问根结点,然后再访问左子树,最后再访问右子树。在访问子树时,也是先访问其根结点,然后再访问其左子树,最后再访问其右子树。是典型的递归调用。根+左+右。

 

中序遍历定义是先访问左子树,然后再访问根结点,最后再访问右子树。在访问子树时,也是先访问其左子树,然后再访问其根结点,最后再访问其右子树。也是典型的递归调用。左+根+右。中序遍历二叉搜索树(BST),遍历出来的结果是升序序列。

 

后序遍历定义是先访问左子树,然后再访问右子树,最后再访问根结点。在访问子树时,也是先访问其左子树,然后再访问其根结点,最后再访问其右子树。也是典型的递归调用。左+右+根。

 

背诵了很多遍,终于想明白了一点,前序、中序、后序,是站在根结点的角度来说的,前序就是根结点在前面遍历,中序就是根结点在中间遍历,后序就是根结点在后面遍历。就好像I/O是站在内存的角度说的一样。

 

 

层序遍历和其他遍历不一样,是一层层的遍历,每一层是先左后右。不能用递归,需要用广度优先搜索。

posted on 2017-09-07 01:29  koushr  阅读(1650)  评论(0)    收藏  举报

导航