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

二叉树--递归实现

时间:2016-01-26 23:25:58      阅读:240      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!