二叉树的基本操作

来源:互联网 发布:java工程师具备的条件 编辑:程序博客网 时间:2024/06/05 07:51
#include<stdio.h>#include<string.h>typedef struct BiTNode{    char data;    struct BiTNode *lchild, *rchild;}*BiTree;void CreateBiTree(BiTree &T){    char ch;    scanf(" %c", &ch);    if('@' == ch){        T = NULL;        return ;    }    T = new BiTNode;    T->data = ch;    CreateBiTree(T->lchild);    CreateBiTree(T->rchild);}void PreOrderTraverse(BiTree T){    if(!T) return ;    printf("%c ", T->data);    PreOrderTraverse(T->lchild);    PreOrderTraverse(T->rchild);}void InOrderTraverse(BiTree T){    if(!T) return ;    InOrderTraverse(T->lchild);    printf("%c ", T->data);    InOrderTraverse(T->rchild);}void PostOrderTraverse(BiTree T){    if(!T) return ;    PostOrderTraverse(T->lchild);    PostOrderTraverse(T->rchild);    printf("%c ", T->data);}int Depth(BiTree T){    if(T == NULL) return 0;    int m = Depth(T->lchild);    int n = Depth(T->rchild);    return m>n?m+1:n+1;}int main(){    BiTree T;    CreateBiTree(T);    PreOrderTraverse(T);    printf("\n");    InOrderTraverse(T);    printf("\n");    PostOrderTraverse(T);    printf("\n");    printf("%d\n", Depth(T));    return 0;}

未完待续~~~