zoukankan      html  css  js  c++  java
  • 同学整理的关于二叉树问题之已知两种序列求第三种

    (一):已知二叉树中序序列和后序序列,求先序序列

    例:(白书P38613题)二叉树中序序列为abcdefg,后序序列为bdcafge,求先序序列

    1.找根结点:

    后序序列顺序为左右头,它最后一个定为根结点,根结点就为后序序列的最后一个------e

    2.分左右孩子:

    e为根结点,根据中序序列是左头右推出abcd是根结点的左孩子,fg为右孩子;

    3.排左孩子:

    中序序列为abcd,后序序列为bdca(递归到第一步)

    1):找分支结点:

            后序序列最后一个为分支结点,分支结点为a

    2):分左右孩子:

            a为分支结点,根据中序序列是左头右推出没有左孩子,bcd为右孩子;

    3):排左孩子:

            无;

    4):排右孩子:

            (此处省略过程,还是递归)排序为bc的左孩子,dc的右孩子,ca的右孩子;

    4.排右孩子:

    中序序列为fg,后序序列为fg(也是递归)

    1):找分支结点:

            后序序列最后一个为分支结点,分支结点为g

    2):分左右孩子:

            g为分支节点,根据中序序列是左头右推出

    f为左孩子,无右孩子;

        (3):排左孩子:

                fg的左孩子;

    4):排右孩子:

            无;

    5.画二叉树:

                           e

                         /     \

                        a       g

                         \      /

                          c    f

                        /   \

                       b     d

    6.写先序序列:为eacbdgf

    (二):已知二叉树先序序列和中序序列,求后序序列

    例:(白书P38618题)二叉树先序序列为EFHIGJK,中序序列为HFIEJKG,求后序序列

    1.找根结点:

    先序序列顺序为头左右,它第一个定为根结点,根结点就为先序序列的第一个------E

    2.分左右孩子:

    E为根结点,根据中序序列是左头右推出HFI是根结点的左孩子,JKG为右孩子;

    3.排左孩子:

    中序序列为HFI,先序序列为FHI(递归到第一步)

    1):找分支结点:

            先序序列第一个为分支结点,分支结点为F

    2):分左右孩子:

            F为分支结点,根据中序序列是左头右推出H为左孩子,I为右孩子;

    3):排左孩子:

            HF的左孩子;

    4):排右孩子:

            IF的右孩子;

    4.排右孩子:

    中序序列为JKG,先序序列为GJK(也是递归)

    1):找分支结点:

            先序序列第一个为分支结点,分支结点为G

    2):分左右孩子:

            G为分支节点,根据中序序列是左头右推出

    JK为左孩子,无右孩子;

        (3):排左孩子:

                (此处省略过程,还是递归)KJ的右孩子,JG的左孩子;

    4):排右孩子:

            无;

    5.画二叉树:

                           E

                         /     \

                        F       G

                       /  \      /

                      H   I    J

                                \

                                  K

    6.写后序序列:为HIFKJGE

                                    整理人:某位不愿透露姓名的帅哥

                                    时间:2016.5.20

  • 相关阅读:
    代码互改
    第一次个人编程作业
    第一次博客
    个人总结
    第三次个人作业--用例图设计
    第二次结对作业
    第一次结对作业
    记录浏览他人代码
    中文编程作业
    第一篇随笔
  • 原文地址:https://www.cnblogs.com/wty20010315/p/5517057.html
Copyright © 2011-2022 走看看