若是第一遍看不懂沒關係,請手動模擬體會。這個方法是設置最近訪問節點,另解參考博主博文版本二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