二叉树遍历-递归-前中后序-C代码

本文详细介绍了二叉树的链式存储结构,并通过C语言实现了一个具体的二叉树实例。文章展示了如何创建结点并构建二叉树,随后通过递归方式实现了先序、中序和后序遍历,输出了结点数据,为读者提供了深入理解二叉树数据结构的机会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>

//定义二叉树结点链式存储结构
struct BiTNode{
        int data;//数据域
        struct BiTNode *lchild,*rchild;//左右孩子指针
}*BiTree;

int main(){
        //初始化结点
        struct BiTNode node1,node2,node3,node4,node5,node6,node7;
        node1=(struct BiTNode){1,&node2,&node3};
        node2=(struct BiTNode){2,&node4,&node5};
        node3=(struct BiTNode){3,&node6,&node7};
        node4=(struct BiTNode){4,NULL,NULL};
        node5=(struct BiTNode){5,NULL,NULL};
        node6=(struct BiTNode){6,NULL,NULL};
        node7=(struct BiTNode){7,NULL,NULL};

        //建树
        BiTree=&node1;
        node1.lchild=&node2;
        node1.rchild=&node3;
        node2.lchild=&node4;
        node2.rchild=&node5;
        node3.lchild=&node6;
        node3.rchild=&node7;
        PreOrder(BiTree);
        printf("\n");
        InOrder(BiTree);
        printf("\n");
        PostOrder(BiTree);
        printf("\n");
        return 0;
}

//先序遍历
int PreOrder(struct BiTNode *BiTree){
        if(BiTree!=NULL){
                printf("%d ",BiTree->data);
                PreOrder(BiTree->lchild);
                PreOrder(BiTree->rchild);
        }
}

//中序遍历
int InOrder(struct BiTNode *BiTree){
        if(BiTree!=NULL){
                InOrder(BiTree->lchild);
                printf("%d ",BiTree->data);
                InOrder(BiTree->rchild);
        }
}

//后序遍历
int PostOrder(struct BiTNode *BiTree){
        if(BiTree!=NULL){
                PostOrder(BiTree->lchild);
                PostOrder(BiTree->rchild);
                printf("%d ",BiTree->data);
        }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值