其他分享
首页 > 其他分享> > 2021-09-13

2021-09-13

作者:互联网

关于二叉树递归与非递归遍历的出入栈情况

重温数据结构,发现第一次学的时候并没有对二叉树非递归与递归遍历时的栈进行区分,这两种情况是不一样的 一个简单的二叉树

以上图的二叉树的前序遍历为例,如果是递归遍历,则栈的变化如下左

左边是递归的栈,右边是非递归的栈
如果是非递归遍历(最普遍的前序遍历非递归算法),则栈的变化如上图右

还有一点要特别说明,递归进栈的是方法,而方法想要出栈必须全部执行完,因此递归遍历的栈中当某次调用方法传入的实参是非叶节点那么该次方法一定在它的子节点的那次方法后面出栈
而非递归进栈的是结点就没有那么多问题了

如果本文有什么问题欢迎在评论区指出,谢谢!

标签:13,遍历,递归,前序,09,2021,进栈,方法,二叉树
来源: https://blog.csdn.net/Azaleanoshinzou/article/details/120277577