第 3 题
在下列遍历算法中,在遍历序列中叶结点之间的次序可能与其他算法不同的算法是( )。
A. 先序遍历算法 B. 中序遍历算法 C. 后序遍历算法 D. 层次遍历算法
[tag_link]
正确答案:D
先序、中序和后序遍历算法均属于深度优先遍历,其递归或迭代过程都遵循先处理左子树、后处理右子树的原则。 因此,对于任意二叉树,这三种遍历算法访问叶结点的次序始终相同:左子树中的所有叶结点都先于右子树中的所有叶结点被访问,且左、右子树内部叶结点的相对顺序也一致。 而层次遍历算法采用广度优先策略,按层次从上到下、从左到右访问节点。 由于叶结点可能分布在不同层次,其访问次序取决于层次和同一层次中的左右位置,可能与深度优先遍历的叶结点次序不同。 例如,对于根节点有左子节点(含两个叶结点)和右子节点(为叶结点)的二叉树,先序、中序和后序遍历的叶结点次序均为左子树中的两个叶结点先于右子叶结点,而层次遍历则先访问右子叶结点(位于第二层),再访问左子树中的叶结点(位于第三层)。 因此,层次遍历算法的叶结点次序可能与其他算法不同。