美文网首页
非递归方式遍历二叉树

非递归方式遍历二叉树

作者: whynotybb | 来源:发表于2018-12-14 22:40 被阅读0次

非递归方式访问二叉树,前序和中序的顺序一致,都是先访问完左子树,所以先是一个while循环,顺着左子树走完之后,再去访问根结点和右子树。还有一点是比较重要的,因为二叉树最多有两个子结点,所以在访问结点的右子结点之前,应该将根结点在栈中移除,要不然会陷入死循环。或者另一种方式就是记录访问完的结点。

遍历二叉树有四种方式:前序遍历、中序遍历、后序遍历和层次遍历。

非递归方式前序遍历二叉树:

非递归中序遍历二叉树:应用1:二叉搜索树的最小第K个数,二叉搜索输的中序遍历是有序的。

二叉树中序遍历循环方式代码

后序遍历:最复杂

后序遍历二叉树

层次遍历:

层次遍历二叉树

详细源代码在https://github.com/whynotybb/alg_practice/tree/master/src/binarytree

相关文章

  • 二叉树遍历

    请递归,非递归方式分别前序遍历,中序遍历,后续遍历二叉树

  • 左神算法笔记——Morris遍历

    基本问题——实现二叉树的前序、中序、后序遍历 (递归、非递归,mirros方法) 递归 递归方式下的前中后遍历 非...

  • 二叉树遍历java,非递归、层次。

    /** * 前序遍历 * 递归 */ /*** 前序遍历* 非递归*/ 后续遍历非递归 二叉树层次遍历基于java...

  • 不一样的二叉树非递归遍历

    本篇将讨论模拟系统栈的二叉树非递归遍历,并由此讨论一般化的将递归程序改为非递归程序的方式。 二叉树的非递归遍历 就...

  • 二叉树递归非递归遍历算法整理

    一、二叉树前序遍历 1 前序递归遍历 2.前序非递归遍历 一、二叉树中序遍历 2.中序递归遍历 1.中序非递归遍历...

  • 总结

    1、二叉树广度遍历(非递归) 广度遍历非递归实现需要依靠一个队列。 2、二叉树深度遍历(递归与非递归,前序,中序和...

  • 二叉树的三种深度优先遍历算法与思路

    看了一些关于二叉树遍历算法的文章,例如:二叉树三种遍历方式的递归和循环实现二叉树的递归与非递归遍历(前序、中序、后...

  • 二叉树遍历

    二叉树的遍历 1. 前序遍历 1.1 递归前序遍历 1.2 非递归前序遍历 2 中序遍历 2.1递归遍历 2.2非...

  • 二叉树的各类遍历方法

    二叉树的遍历主要有四种:前序、中序、后序、层序。 遍历的实现方式主要是:递归和非递归。递归遍历的实现非常容易,非递...

  • 大数据面试题目

    一、数据结构与算法 1.二叉树前序、中序、后续遍历方式(递归以及非递归) 2.二叉树的深度以及广度遍历方式 ...

网友评论

      本文标题:非递归方式遍历二叉树

      本文链接:https://www.haomeiwen.com/subject/gnughqtx.html