递归遍历树

可能编译时会有些语法小错误(比如分号,->,等),很容易就自己纠正了哦,思路绝对是完全正确的,所以用的话就自己试着改改吧,直接复制粘贴,就正确,岂不是太没写代码体验了,自己改改才印象更加深刻的呢()~~~~;

//遍历算法
#include<iostream>
using namespace std;
typedef struct BiNode{
    char data;
    struct BiNode *lchild,*rchild;
}BiTNode,*BiTree;

void CreratBiTree(BiTree &T){
    char ch;
    cin>>ch;
    if(ch=='#') T=NULL;
    else{
        T=new BiTree;
        T->data=ch;
        CreratBiTree(T->lchild);
        CreratBiTree(T->rchild)
    }
}

void InOderTraverserve(BiTree T){
    if(T){
        InOderTraverserve(T->lchild);
        cout<<T-data;
        InOderTraverserve(T->rchild);
    }
}

void main(){
    BiTree tree;
    cout<<"please input
";
    CreratBiTree(tree);
    cout<<"middle result
";
    CreratBiTree(tree);
    cout<<"front result
";
    cout<<endl;
}
原文地址:https://www.cnblogs.com/ygjzs/p/11874560.html