二叉树(静态)(遍历)

<img src="https://img-blog.csdn.net/20150723142241734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
# include <stdio.h>
# include <malloc.h>

struct BTNode
{
    char data;
    struct BTNode * pLchild;
    struct BTNode * pRchild;
};

struct BTNode * CreateBTree(void);
void PreTraverseBTree(struct BTNode *pT);
void InTraverseBTree(struct BTNode *pT);
void PostTraverseBTree(struct BTNode *pT);

int main()
{
    struct BTNode *pT = CreateBTree();

    PreTraverseBTree(pT);
    InTraverseBTree(pT);
    PostTraverseBTree(pT);

    return 0;
}

void PreTraverseBTree(struct BTNode *pT)//前序遍历
{
    if (NULL != pT)
    {
        printf("%c\n",pT ->data);
    

        if (NULL != pT ->pLchild)
        {
            PreTraverseBTree(pT ->pLchild);
        }

        if (NULL != pT ->pRchild)
        {
            PreTraverseBTree(pT ->pRchild);
        }
    }
}

void InTraverseBTree(struct BTNode *pT)//中序遍历
{
  if (NULL != pT)
    {
        
    

        if (NULL != pT ->pLchild)
        {
            InTraverseBTree(pT ->pLchild);
        }
        
        printf("%c\n",pT ->data);    

        if (NULL != pT ->pRchild)
        {
            InTraverseBTree(pT ->pRchild);
        }
    }
}

void PostTraverseBTree(struct BTNode *pT)//后序遍历
{
    if (NULL != pT)
    {
        
    

        if (NULL != pT ->pLchild)
        {
            PostTraverseBTree(pT ->pLchild);
        }
        if (NULL != pT ->pRchild)
        {
            PostTraverseBTree(pT ->pRchild);
        }
        printf("%c\n",pT ->data);    

        
    }
}

struct BTNode * CreateBTree(void)//创建静态二叉树
{
    struct BTNode * pA = (struct BTNode *) malloc (sizeof (struct BTNode));
    struct BTNode * pB = (struct BTNode *) malloc (sizeof (struct BTNode));
    struct BTNode * pC = (struct BTNode *) malloc (sizeof (struct BTNode));
    struct BTNode * pD = (struct BTNode *) malloc (sizeof (struct BTNode));
    struct BTNode * pE = (struct BTNode *) malloc (sizeof (struct BTNode));

    pA -> data = 'A';
    pB -> data = 'B';
    pC -> data = 'C';
    pD -> data = 'D';
    pE -> data = 'E';

    pA -> pLchild = pB;
    pA -> pRchild = pC;
    pB -> pLchild = pB ->pRchild = NULL;
    pC ->pLchild = pD;
    pC ->pRchild = NULL;
    pD ->pLchild = NULL;
    pD ->pRchild = pE;
    pE ->pLchild = pE ->pRchild = NULL;

    return pA;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值