二叉树的前序遍历、中序遍历、后续遍历及层序遍历
前序遍历定义是先访问根结点,然后再访问左子树,最后再访问右子树。在访问子树时,也是先访问其根结点,然后再访问其左子树,最后再访问其右子树。是典型的递归调用。根+左+右。
中序遍历定义是先访问左子树,然后再访问根结点,最后再访问右子树。在访问子树时,也是先访问其左子树,然后再访问其根结点,最后再访问其右子树。也是典型的递归调用。左+根+右。中序遍历二叉搜索树(BST),遍历出来的结果是升序序列。
后序遍历定义是先访问左子树,然后再访问右子树,最后再访问根结点。在访问子树时,也是先访问其左子树,然后再访问其根结点,最后再访问其右子树。也是典型的递归调用。左+右+根。
背诵了很多遍,终于想明白了一点,前序、中序、后序,是站在根结点的角度来说的,前序就是根结点在前面遍历,中序就是根结点在中间遍历,后序就是根结点在后面遍历。就好像I/O是站在内存的角度说的一样。
层序遍历和其他遍历不一样,是一层层的遍历,每一层是先左后右。不能用递归,需要用广度优先搜索。
浙公网安备 33010602011771号