首页 > 代码库 > 二叉树遍历递归与非递归实现
二叉树遍历递归与非递归实现
说明:本文仅供学习交流,转载请标明出处,欢迎转载!
二叉树遍历是二叉树中非常基础的部分,也是学习二叉树必须熟练掌握的部分,下面我们先给出二叉树三种遍历方式的定义,并通过举例来说明二叉树遍历的过程。
二叉树的遍历分为:前序遍历(也叫先序遍历)、中序遍历、后序遍历。所谓前、中、后都是根据当前子树根结点相对左右孩子的位置而言,也就是说:
前序遍历:根结点在前,即:根 ----->左------->右;
中序遍历:根结点在中间,即:左------>根------>右;
后序遍历:根结点在最后,即:左------->右------根。
从上面的定义可以看出,这三种遍历中,左子树总是比右子树优先访问。
下图是我们给一个例子:
代码如下:
#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;>测试结果如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。