二叉树的三种迭代遍历方式
Posted treasury
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的三种迭代遍历方式相关的知识,希望对你有一定的参考价值。
前序遍历思路
栈S;
p= root;
while(p || S不空){
while(p){
访问p节点;
p的右子树入S;
p = p的左子树;
}
p = S栈顶弹出;
}
中序遍历思路
栈S;
p= root;
while(p || S不空){
while(p){
p入S;
p = p的左子树;
}
p = S.top 出栈;
访问p;
p = p的右子树;
}
后序遍历思路
法1:
栈S;
p= root;
while(p || S不空){
while(p){
访问p节点;
p的左子树入S;
p = p的右子树;
}
p = S栈顶弹出;
}
结果序列逆序;
法2:
栈S;
p= root;
T<节点,True/False> : 节点标记;
while(p || S不空){
while(p){
p入S;
p = p的左子树;
}
while(S不空 且 T[S.top] = True){
访问S.top;
S.top出S;
}
if(S不空){
p = S.top 的右子树;
T[S.top] = True;
}
}
以上是关于二叉树的三种迭代遍历方式的主要内容,如果未能解决你的问题,请参考以下文章