回 帖 发 新 帖 刷新版面

主题:[原创]后序非递归?加分!

各位好,请问一下,后序非递归的算法如何写呢?树的中序用栈遍历很简单,可是如何用栈实现后序呢?请教

回复列表 (共1个回复)

沙发

void BerforOrderTraverse2(bitree t) //后序非递归形式
 {
    typedef struct node 
       { 
    bitree  t; 
       int tag;   
       } stack;
      stack s[100] ;
       int top=0;
      while (t!=NULL|| top!=0)
      {
    while (t!=NULL) 
          {
     s[++top].t=t;  
     s[top].tag=0; 
     t=t->lchild; 
    }
         while (top!=0 && s[top].tag==1) 
   {
    printf("%c" ,s[top--].t->data);
   }
      if (top) 
   { 
      s[top].tag=1;  
         t = s[top].t->rchild ; 
   }
  } 
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册