思路:html
标记一个结点的左右子树是否已经被访问过,叶子节点也进行标记算法
拓展:code
遍历过程当中读者会发现,某一时刻,从栈底到栈顶的元素恰好构成当前访问节点的到根节点的路径。利用这一特性能够实现两个算法:(1)根到某节点的路径(2)两个节点的最近公共祖先
htm
typeDef struct{blog
BiTree t; int tag;
}Stack递归
void f(BiTree bt, ElemType x){get
Stack s[]; top = 0; while(bt!=null||top>0) while(bt!=null){ s[++top].t = bt; s[top].tag = 0; bt=bt->lchild; } //注意这里是while 不是if while(top!=0&&s[top].tag==1) print(visit(s[top--])); if(top!=0){ s[top].tag = 1; bt = s[top].t->rchild; }
}it
您可能感兴趣的class