首页 > 其他 > 详细

二叉树--递归实现

时间:2016-01-26 23:25:48      阅读:170      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
#include<stdlib.h>
#define ElemType int

typedef struct BiTNode{
    ElemType data;
    struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;

int CreateBiTree(BiTree* t)
{
    char ch;
    scanf("%c",&ch);
    if(ch== )
        (*t)=NULL;
    else
    {
        (*t) = (BiTNode*)malloc(sizeof(BiTNode));
        if(!(*t))
            return 0;
        (*t)->data = ch;
        CreateBiTree(&(*t)->lchild);
        CreateBiTree(&(*t)->rchild);
    }

    return 1;
}

void preOrderDisplay(const BiTree* t)
{
    if((*t)==NULL)
        return;
    printf("%c",(*t)->data);
    preOrderDisplay(&(*t)->lchild);
    preOrderDisplay(&(*t)->rchild);
}

void inOrderDisplay(const BiTree* t)
{
    if((*t)==NULL)
        return;
    inOrderDisplay(&(*t)->lchild);
    printf("%c",(*t)->data);
    inOrderDisplay(&(*t)->rchild);
}

void afterOrderDisplay(const BiTree* t)
{
    if((*t)==NULL)
        return;
    afterOrderDisplay(&(*t)->lchild);
    afterOrderDisplay(&(*t)->rchild);
    printf("%c",(*t)->data);
}

int main()
{
    BiTree t;
    int iRes = CreateBiTree(&t);
    printf("******the returned result : %d\n",iRes);
    printf("\n*********preOrderDisplay*********\n");
    preOrderDisplay(&t);
    printf("\n*********inOrderDisplay**********\n");
    inOrderDisplay(&t);
    printf("\n*********afterOrderDisplay*******\n");
    afterOrderDisplay(&t);
    return 1;
}

 

二叉树--递归实现

原文:http://www.cnblogs.com/luoyaqi/p/5161786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!