5.4 二叉树的遍历及常用操作 1.先序遍历 先序遍历,也称为先根遍历,其访问方式递归定义如下: 对于一棵二叉树,先访问其根结点,再访问根结点的左、右子树; 对于左、右子树中的结点仍然是按照先序遍历方式访问,即先访问根结点,再访问根结点的左、右子树。 提示:在先序遍历中,只规定了根结点和其子树的访问顺序,但没有规定左、右子树的访问顺序。本书中规定,在先序、中序和后序遍历时均是先访问左子树后访问右子树。 例如,对于图5-12所示的二叉树,其先序遍历的结果为:A、B、D、G、C、E、F、H、I。 5.4.1 二叉树的遍历及其实现 5.4 二叉树的遍历及常用操作 5.4.1 二叉树的遍历及其实现 操作 栈中元素(最左边为栈底元素,最右边为栈顶元素) 根结点A入栈 A 栈顶元素A出栈并访问,将A的右孩子C和左孩子B依次入栈 C、B 栈顶元素B出栈并访问,将B的左孩子D入栈 C、D 栈顶元素D出栈并访问,将D的右孩子G入栈 C、G 栈顶元素G出栈并访问 C 栈顶元素C出栈并访问,将C的右孩子F和左孩子E依次入栈 F、E 栈顶元素E出栈并访问 F 栈顶元素F出栈并访问,将F的右孩子I和左孩子H依次入栈 I、H 栈顶元素H出栈并访问 I 栈顶元素I出栈并访问 栈为空,二叉树先序遍历结束 表5-1 图5-12所示二叉树的非递归先序遍历过
原创力文档

文档评论(0)