已知一颗二叉树的前序和中序序列,唯一的确定一颗二叉树

原创 2006年06月19日 15:51:00

已知一颗二叉树的前序和中序序列,唯一的确定一颗二叉树,由此构造二叉树的递归算法。

设前序序列和中序序列分别存放两个一维数组,pre(1,n)和ind(1,n),按前序序列pre(i,j)和中序序列ind(u,v)递归构造二叉树,其根结点指针为s。

typedef  struct  bnode
{ Elemtype data;
   struct bnode *left,*right;
 }btree;
btree *bintree(int i,int j,int u,int v)
{
   int k,l;
   btree *head,*s;
   head=NULL;
   if(j>=i)
   {
       head=new btree; //建立根结点
       head->data=pre[i];
       k=u;
       while(ind[k]!=pre[i]) k++//在中序序列中查找根结点
       l=i+k-u;//l为左子树中最右下结点在前序序列中的位置
       if(k==u) //左子树为空
        head->left=NULL;
       else
        {
            s=bintree(i+1,l,u,k-1);//构造左子树
            head->left=s;
        }
      if(k==v)//右子树为空
        head->right=NULL;
      else
        {
            s=bintree(l+1,j,k+1,v);//构造右子树
            head->right=s;
        }            
   }      
    
return head;
}

数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现

一、基本概念 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 性质: 1、非空二叉树的第n层上至多有2^(n-1)个元素。 2、深度为h的二叉树至多有2^h-1个结点。 满二叉树:所有...
  • fansongy
  • fansongy
  • 2011年09月22日 21:10
  • 283345

二叉树前序,中序,后序遍历详解

只要是搞计算机的,对数据结构中二叉树遍历都不陌生,但是如果用到的机会不多那么就会慢慢淡忘,温故而之新才是最好的学习方式,现在就重新温习一下这方面的知识。 首先我想先改变这几个遍历的名字(前根序遍历,...
  • prince_jun
  • prince_jun
  • 2012年07月09日 15:28
  • 56421

二叉树前序、中序、后序遍历非递归写法的透彻解析

前言 在前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最...
  • zhangxiangDavaid
  • zhangxiangDavaid
  • 2014年07月06日 22:14
  • 65218

前序遍历和中序遍历序列能确定唯一的一棵二叉树

由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉 树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所 缺的语句。 ...
  • u010806212
  • u010806212
  • 2015年12月18日 12:12
  • 2813

根据二叉树的前中序确定唯一的二叉树

关键是怎么根据前中序推出二叉树。假设前序为1245367,中序为4251637。那么根结点为1,在中序中找到1,则左边为1的左子树,右边为1的右子树。那么可以根据这个在前序序列中和中序序列中,分出1的...
  • ustcyue
  • ustcyue
  • 2014年03月04日 18:02
  • 884

已知一棵二叉树的后序遍历和中序遍历,写出可以确定这棵二叉树的算法

已知一棵二叉树的后序遍历和中序遍历,写出可以确定这棵二叉树的算法 #include #include #include #define MAX 105 typedef struct...
  • qq_41181142
  • qq_41181142
  • 2017年11月26日 15:18
  • 219

二叉树系列(1)已知二叉树的中序遍历和前序遍历,如何求后序遍历

(昨晚HULU的笔试题之一,被鄙视的惨,面对向往已久的公司,交出苍白无力的答卷,心里像被剜了一刀。再多解释都是苍白。我鄙视我自己。现在开始舔舐伤口。) 假设有棵树,长下面这个样子,它的前序遍历,中...
  • feliciafay
  • feliciafay
  • 2011年09月24日 11:04
  • 61824

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

回答了百度知道上的一个提问,原题是这样的: 当一棵二叉树前序序列和中序序列分别为HGEDBFCA和EGBDHFAC时,其后序序列为什么?当一棵二叉树前序序列和中序序列分别为HGEDBFCA和EGBDH...
  • u011215133
  • u011215133
  • 2017年06月15日 11:06
  • 1359

根据二叉树的前序和中序求后序

在面试的过程中,发现有几家公司都喜欢考这样的一道题,就是在一棵二叉树中,已知这棵二叉树的前序和中序遍历结果,要求写出后序遍历结果。  例如:在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序...
  • hinyunsin
  • hinyunsin
  • 2011年04月11日 14:31
  • 24083

已知一颗二叉树的前序和中序序列,唯一的确定一颗二叉树

已知一颗二叉树的前序和中序序列,唯一的确定一颗二叉树,由此构造二叉树的递归算法。设前序序列和中序序列分别存放两个一维数组,pre(1,n)和ind(1,n),按前序序列pre(i,j)和中序序列ind...
  • fisher_jiang
  • fisher_jiang
  • 2006年06月19日 15:51
  • 5751
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:已知一颗二叉树的前序和中序序列,唯一的确定一颗二叉树
举报原因:
原因补充:

(最多只允许输入30个字)