先序遍歷的非遞歸遍歷算法:算法
1 void InOrderTraversal(BinTree BT) 2 { 3 BinTree T=BT; 4 stack S=CreatStack(MaxSize)://建立並初始化堆棧S 5 while(T || !IsEmpty(S)){ 6 While(T){//一直向左並將沿途節點壓入堆棧 7 printf("%5d",T->Data);//(訪問)打印節點 8 Push(S,T); 9 T=T->left; 10 } 11 if(! IsEmpty(S)){ 12 T=Pop(S);//節點彈出堆棧 13 T=T->Right;//轉向右子樹 14 } 15 } 16 }