前序序列=根 左子树 右子树,中序序列=左子树 根 右子树,后序序列=左子树 右子树 根,层次序列=根 第二层从左到右 第三层从左到右 以此类推。中序序列又称为对称序列。
前序序列第一个节点为根节点,后序序列最后一个节点为根节点,再在中序序列中找到根节点,中序序列中根节点左边的为左子树,右边的为右子树。以中序序列左子树节点序列为新的左子序列,在前序序列或者后序序列中找到左子序列的父节点,再回到左子序列划分左右序列,依次类推,最终画出左子树。右子树同理。
例题:前序序列为ADFGHKLPQRWZ,中序序列为GFHKDLAWRQPZ,画出二叉树,并求后序序列和层次序列。
由前序序列知,A为根节点,在中序序列中找到A,左边GFHKDL为左子树中序序列,右边WRQPZ为右子树中序序列。所以,在前序序列中,DFGHKL为左子树前序序列,PQRWZ为右子树前序序列。
左子树,由左子树前序序列DFGHKL知,D为父节点,回到左子树中序序列GFHKDL找到D,左边中序序列GFHK为D的左孩子,右边L为D的右孩子。回到左子树前序序列DFGHKL知,左边中序序列GFHK中F节点为下一个父节点,G为F的左孩子,HK为F的右孩子。右边,L为右节点没有孩子。HK在前序序列知,H在前,H是K的父节点,K是H的右孩子。由此,可画出左子树。右子树同理。
二叉树为:
后序序列为:GKHFLDWRQZPA
层次序列为:ADPFLQZGHRKW