?? 算法 6.2.txt
字號:
算法 6.2
void InOrder_iter( BiTree BT,void(*visit)( BiTree ) ) {
// 利用棧實現中序遍歷二叉樹,T為指向二叉樹的根結點的頭指針
InitStack(S);
e.ptr=BT; e.task=Travel; // e為棧元素
if(BT) Push(S, e); // 布置初始任務
while(!StackEmpty(S)) { // 每次處理一項任務
Pop(S,e);
if(e.task==Visit) visit(e.ptr); // 處理訪問任務
else
if(e.ptr){ // 處理非空樹的遍歷任務
p=e.ptr;
e.ptr=p->rchild; Push(S,e); // 最不迫切任務(遍歷右子樹)進棧
e.ptr=p; e.task=Visit; Push(S,e); //處理訪問任務的工作狀態進棧
e.ptr=p->lchild; e.task=Travel; Push(S,e);// 迫切任務(遍歷左子樹)進棧
}//if
}//while
}//InOrder_iter
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -