递归建立二叉树

第一次建立二叉树,终于实现了,之前一直看书,非常枯燥,看得想睡觉。

现在有兴趣把刚刚落下的东西补起来了。


#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
typedef struct node
{
    struct node *leftchild;
    struct node *rightchild;
    char data;
} bitreenode,*bitree;
void createTree(bitree &T)
{
    char ch;
    cin>>ch;
    if(ch=='#')T=NULL;
    else
    {
        T=new node;
        T->data=ch;
        createTree(T->leftchild);
        createTree(T->rightchild);
    }
}
void preTraverse(bitree &T)
{
    if(T==NULL)return ;
    cout<<T->data;
    preTraverse(T->leftchild);
    preTraverse(T->rightchild);
}
void intraverse(bitree &T)
{
    if(T==NULL)return ;
    intraverse(T->leftchild);
    cout<<T->data;
    intraverse(T->rightchild);

}
void posttraverse(bitree &T)
{
    if(T==NULL)return ;
    posttraverse(T->leftchild);
    posttraverse(T->rightchild);
    cout<<T->data;
}

int main()
{
    int i,j,k;
    node *T;
    createTree(T);
    cout<<endl;
    preTraverse(T);
     cout<<endl;
    intraverse(T);
     cout<<endl;
    posttraverse(T);
    return 0;
}
/*
AB#D##C#E##
*/

原文地址:https://www.cnblogs.com/hjch0708/p/7554840.html