void Preorder(BinTree T) {/*先序遍历二叉树T的非递归算法*/ SeqStack *S; BinTree p; InitStack(S); Push(S,T); /*根指针进栈*/ while(!StackEmpty(S)) {while(p=StackTop(S)) { printf("%c ",p->data); /*访问入栈结点的数据域*/ Push(S,p->lchild); /*向左走到尽头*/ } p=Pop(S); /*空指针退栈*/ if (!StackEmpty(S)) /*输出结点,向右一步*/ {p=Pop(S); Push(S,p->rchild); } } }