码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的递归遍历

时间:2015-06-24 20:59:48      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
#include<stack>
using namespace std;
/*二叉树的前序遍历,按照  根节点->左孩子->右孩子

*/

typedef struct node
{
    char data;
    struct node *lchild,*rchild;
}BinTree;
void creatBinTree(BinTree * &root){    
    char ch;
    if(ch=getchar()){
        if(ch==#)
        root=NULL;
    else{
        root=new BinTree;
        root->data=ch;
        creatBinTree(root->lchild);
        creatBinTree(root->rchild);
    }
 }
}
//创建二叉树,
//递归遍历
void preOrder1(BinTree *&root){  //root是指向BinTree的结构体变量
    if(root){
        cout<<root->data<<" ";
        preOrder1(root->lchild);
        preOrder1(root->rchild);
    }
}
//非递归操作

void InOrder(BinTree * & root){
    if(root){
        InOrder(root->lchild);
        cout<<root->data<<" ";
        InOrder(root->rchild);
    }
}
void PostOrder(BinTree * &root){
    if(root){
        PostOrder(root->lchild);
        PostOrder(root->rchild);
        cout<<root->data<<" ";
    }
}
int main(){        
        BinTree * root;
        creatBinTree(root);
        cout<<"前序遍历:";
        preOrder1(root);
        cout<<endl;
        cout<<"中序遍历:";
        InOrder(root);
        cout<<endl;
        cout<<"后序遍历:";
        PostOrder(root);
        cout<<endl;
        system("pause");
    return 0;
}

比如输入 

AB##C##

前序:A B C

中序:B A C

后序:B C A

二叉树的递归遍历

标签:

原文地址:http://www.cnblogs.com/wintersong/p/4598578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!