若是第一遍看不懂没关系,请手动模拟体会。这个方法是设置最近访问节点,另解参考博主博文版本二html
func(Tree T){算法
if(T==NULL){ printf("树空"); return } Stact S; TreeNode r=NULL;//用于标记是不是从右子树返回的,读者手动模拟一遍就知道了 while(T!=NULL||!IsEmpty(S)){ if(T!=NULL){ push(S,T); T=T->lchild; } else{ GetTop(S,T); //注意此处不是pop if(T->rchild!=null&&T->rchild!=r){ T=T->rchild; push(S,T); T=T->lchild; } else{ pop(S,T); visit(T); r=T;//记住最近访问的结点 T=NULL; } } }
}code
您可能感兴趣的htm