1 /* 
 2 a是前序序列 
 3 b是中序序列 
 4 后序序列将保存在c中 
 5 */ 
 6 void   PostOrder(const   char   a[],   const   char   b[],   char   c[],   int   starta,   int   startb,   int   startc,   int   len) 
 7 { 
 8  if(len==0)   return; 
 9  if(len==1)   {   c[startc]   =   a[starta];   return;   } 
10  
11  c[startc+len-1]   =   a[starta];//处理树根 
12  
13  int   i   =   startb; 
14  while(b[i]!=a[starta])   ++i; 
15  int   leftlen   =   i   -   startb; 
16  int   rightlen   =   len   -   leftlen   -   1; 
17  PostOrder(a,b,c,starta+1,startb,startc,leftlen);//构造左子树的PostOrder 
18  PostOrder(a,b,c,starta+leftlen+1,startb+leftlen+1,startc+leftlen,rightlen);//构造右子树的PostOrder 
19 } 

相关文章:

  • 2022-12-23
  • 2021-08-14
  • 2021-05-24
  • 2021-08-19
  • 2021-12-01
  • 2022-01-01
  • 2022-02-19
猜你喜欢
  • 2022-01-24
  • 2021-08-22
  • 2021-11-30
  • 2022-01-19
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案