首页 > 代码库 > 二叉树遍历递归与非递归实现

二叉树遍历递归与非递归实现

说明:本文仅供学习交流,转载请标明出处,欢迎转载!

            二叉树遍历是二叉树中非常基础的部分,也是学习二叉树必须熟练掌握的部分,下面我们先给出二叉树三种遍历方式的定义,并通过举例来说明二叉树遍历的过程。

        二叉树的遍历分为:前序遍历(也叫先序遍历)、中序遍历、后序遍历。所谓前、中、后都是根据当前子树根结点相对左右孩子的位置而言,也就是说:

        前序遍历:根结点在前,即:根 ----->左------->右

        中序遍历:根结点在中间,即:左------>根------>右

        后序遍历:根结点在最后,即:左------->右------根

        从上面的定义可以看出,这三种遍历中,左子树总是比右子树优先访问

        下图是我们给一个例子:


         代码如下:

#include<iostream>
#include<stack>
using namespace std;
struct Node
{
	int data;
	Node *left;
	Node *right;
	bool FirstVisited;
	Node(int data)
	{
		this->data=http://www.mamicode.com/data;>

         测试结果如下: