zoukankan      html  css  js  c++  java
  • 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;
    }
    


    关注公众号 海量干货等你
  • 相关阅读:
    jquery 实现跨域的简单小例子;
    jquery 实现文字轮播滚动
    js jquery 上传文件格式大小判断简单总结
    js 文本编辑插件 wangEditor 的使用教程和总结
    vue项目结构介绍
    bootstrap select下拉框模糊搜索和动态绑定数据解决方法
    bootstrap实现下拉框select option 美爆了
    jquery 获得select下拉框选择中的属性值
    Nginx + uWSGI 配置django---终极版
    django全文检索
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734501.html
Copyright © 2011-2022 走看看