美文网首页
二叉树---遍历递归算法

二叉树---遍历递归算法

作者: 羊老头 | 来源:发表于2018-11-22 07:38 被阅读0次
#include<iostream>
#include<queue>
//遍历二叉树
//递归算法
struct Node{
    int data;
    Node *lchild,*rchild;
    Node():lchild(NULL),rchild(NULL){}
};
class BiTree{
private:
    Node* Root;
    //内部函数 
    void PreOrder(Node* t);
    void InOrder(Node* t);
    void PostOrder(Node* t);
public:
    void PreOrder(){ PreOrder(Root); }          //先序 
    void InOrder(){ InOrder(Root); }            //中序 
    void PostOrder(){ PostOrder(Root); }        //后序 
    void levelOrder();                          //层次 
};
void BiTree::PreOrder(Node* t){
    if( t==NULL )   return;
    cout << t->data << " ";
    PreOrder( t->lchild );
    PreOrder( t->rchild );
}
void BiTree::InOrder(Node* t){
    if( t==NULL )   return;
    PreOrder( t->lchild );
    cout << t->data << " ";
    PreOrder( t->rchild );
}
void BiTree::PostOrder(Node* t){
    if( t==NULL )   return;
    PreOrder( t->lchild );
    PreOrder( t->rchild );
    cout << t->data << " ";
}
void BiTree::levelOrder(){
    queue<Node*> q;
    Node* p;
    if( Root==NULL )    return;
    q.push( Root );
    while( q.empty()!=true ){
        p = q.front();
        q.pop();
        cout << p->data << " ";
        if( p->rchild!=NULL ) q.push(p->rchild);
        if( p->lchild!=NULL ) q.push(p->lchild);
    }
    cout << endl;
    return;
}

相关文章

  • 二叉树遍历-JAVA实现

    基础二叉树 二叉树遍历分为前序、中序、后序递归和非递归遍历、还有层序遍历。 前序递归遍历算法:访问根结点-->递归...

  • 算法-二叉树算法总结

    二叉树算法总结 1 二叉树的遍历 1.1 前序遍历 递归 迭代 1.2 中序遍历 递归 迭代 1.3 后序遍历 递...

  • 深入浅出二叉树遍历的非递归算法 2019-11-15(未经允许,

    1、二叉树遍历的递归算法 递归实现二叉树的遍历非常直观,回顾一下递归的代码: 前序遍历 中序遍历 后序遍历 他们的...

  • 二叉树遍历(递归算法和非递归算法)

    实验三 二叉树遍历(递归算法和非递归算法) 一.实验目的 1.掌握二叉树的存储结构与基本操作 2.掌握二叉树的遍历...

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

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

  • 数据结构实验2:二叉树的应用

    实验内容: 1.输入字符序列,建立二叉链表。2.中序遍历二叉树:递归算法。3.中序遍历二叉树:非递归算法。(最好也...

  • 记一次Tree的遍历

    统计利用先序遍历创建的二叉树的深度 利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方...

  • 二叉树的中序遍历(Java)——Morris迭代算法

    二叉树的中序遍历 对于此题而言,若采用递归算法(简单),我们使用深度优先算法来遍历二叉树。若采用迭代算法,我们使用...

  • 面试题

    面试题 二叉树 非递归实现二叉树遍历 节点: 前序遍历 中序遍历 后序遍历 排序 快速排序 其他问题 算法题 给一...

  • 大数据面试题目

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

网友评论

      本文标题:二叉树---遍历递归算法

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