• Tree 笨方法实现


    #include <stdio.h>
    #include <malloc.h>
    typedef struct BTnode
    {
        int data;
        struct BTnode *pLchild;
        struct BTnode *pRchild;
    }BTNode;
    BTNode* createBTree()//静态造链式树
    {
        BTNode* pA =(BTNode*) malloc(sizeof(BTNode));
        BTNode* pB =(BTNode*) malloc(sizeof(BTNode));
        BTNode* pC =(BTNode*) malloc(sizeof(BTNode));
        BTNode* pD =(BTNode*) malloc(sizeof(BTNode));
        BTNode* pE =(BTNode*) malloc(sizeof(BTNode));
        pA->data = 'A';
        pB->data = 'B';
        pC->data = 'C';
        pD->data = 'D';
        pE->data = 'E';
        pA->pLchild = pB;
        pA->pRchild = pC;
        pB->pLchild = NULL;
        pB->pRchild = NULL;
        pC->pLchild = pD;
        pC->pRchild = NULL;
        pD->pLchild = NULL;
        pD->pRchild = pE;
        pE->pLchild = NULL;
        pE->pRchild = NULL;
        return pA;
    }
    void First_print(BTNode* pT) //先序遍历
    {
        //先访问根节点  先序访问左子树 先序访问右子树
        if(pT)
        {
            printf("%c
    ",pT->data);
            if(pT->pLchild)
            {
                First_print(pT->pLchild);
            }
            if(pT->pRchild)
            {
                First_print(pT->pRchild);
            }
        }
    }
    void Middl_print(BTNode* pT) //mid序遍历
    {
        //先访问根节点  先序访问左子树 先序访问右子树
        if(pT)
        {
            if(pT->pLchild)
            {
                Middl_print(pT->pLchild);
            }
            printf("%c
    ",pT->data);
            if(pT->pRchild)
            {
                Middl_print(pT->pRchild);
            }
        }
    }
    void end_print(BTNode* pT) //先序遍历
    {
        //先访问根节点  先序访问左子树 先序访问右子树
        if(pT)
        {
            if(pT->pLchild)
            {
                end_print(pT->pLchild);
            }
            if(pT->pRchild)
            {
                end_print(pT->pRchild);
            }
            printf("%c
    ",pT->data);
        }
    }
    int main ()
    {
        BTNode* pT = createBTree();
        printf("first traverse print: 
    ");
        First_print(pT);
        printf("middle traverse print: 
    ");
        Middl_print(pT);
        printf("end traverse print: 
    ");
        end_print(pT);
        return 0;
    }
    


    关注公众号 海量干货等你
  • 相关阅读:
    PHP date 格式化一个本地时间/日期
    Unix时间戳(Unix timestamp)转换工具
    Ubuntu下搭建NodeJS+Express WEB开发框架
    高手指南PHP安装配置
    thinkphp系统常量与自定义常量
    UDP 构建p2p打洞过程的实现原理(持续更新)
    iOS标准时间与时间戳相互转换
    java 时间戳和PHP时间戳 的转换
    Windows与Linux/Mac系统时间不一致的解决方法
    推荐25款php中非常有用的类库
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734501.html
Copyright © 2020-2023  润新知