这一节是关于二叉树的遍历的,常用的有四种遍历二叉树,分别为先序,中序,后序,层次遍历二叉树。利用我们上一节生成的二叉树举例,递归是我们比较常用的方法,看起来比较易懂,代码也比较优美。非递归算法则用另外一种方式对其进行实现。
   递归算法:
   先序遍历:根,左,右

数据结构回顾——二叉树与二叉搜索树(二)static void PreOrder<T>(BinaryTreeNode<T> root)
        }

中序遍历:左,根,右

数据结构回顾——二叉树与二叉搜索树(二)static void MidOrder<T>(BinaryTreeNode<T> root)
        }

后序遍历:左,右,根

数据结构回顾——二叉树与二叉搜索树(二)static void BackOrder<T>(BinaryTreeNode<T> root)

层序遍历:会从根结点开始,从左到右,从上到下遍历每个结点,需要用到队列,会在非递归遍历中给出。

  非递归算法:
先序遍历

数据结构回顾——二叉树与二叉搜索树(二)static void PreOrderWithStack<T>(BinaryTreeNode<T> root)
        }

中序遍历,

数据结构回顾——二叉树与二叉搜索树(二)static void MidOrderWithStack<T>(BinaryTreeNode<T> root)
        }

后序遍历,构造了一个结构体,并加入了L,R作为标记位,首先遍历左子树,将标记位都置为L。然后将栈顶的标记赋为R,这个时候并不将其输出,继续遍历他的右子树,如果没有右子树则输出值,继续遍历右子树。

        }

层序遍历:

数据结构回顾——二叉树与二叉搜索树(二)static void LayerOrder<T>(BinaryTreeNode<T> root)
        }

二叉树的排序方法还远远不止这些,本文中给出这些算法也只是给了一个开头,对于树算法的研究远远没有尽头。

相关文章:

  • 2021-11-04
  • 2021-05-17
  • 2022-01-20
  • 2021-10-21
  • 2021-06-13
猜你喜欢
  • 2021-07-04
  • 2021-09-06
  • 2022-01-11
  • 2021-09-24
  • 2023-02-09
  • 2022-12-23
  • 2022-01-11
相关资源
相似解决方案