假设中序ACGDBHZKX,后序:CDGAHXKZB

由后序序列可得到主根B,继而将中序划分为两个子树,从而也得到后序的两个子树

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

即acgd,hzkx,后序 cdga  ,hxkz

继续递归:

void find_first(string mid,string after){

  if (mid.size()>0){

  char ch=after[after.size()-1];

  cout<<ch;//找根输出

  int k=mid.find(ch);

  find_first(mid.substr(0,k),after.substr(0,k));

  find_first(mid.substr(k+1),after.substr(k,mid.size()-k-1));//递归左右子树;

  }

}

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄