• 数据结构 树的链式存储(二叉表示法)


    //树的链式存储--二叉表示法
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct _TreeNode{
        //数据域
        int data;
        //指针域
        struct _TreeNode * leftchild;//左孩子指针
        struct _TreeNode * rightchild;//右孩子指针
    }TreeNode, *TreeNodePointer;
    
    /*
    以上语法定义了两个类型
    第一个是typedef struct _TreeNode TreeNode 树的节点类型
    第二个是typedef struct _TreeNode * TreeNodePointer 树的指针类型
    
    定义了一个结构体
    typedef struct _TreeNode{
    int data;
    struct _TreeNode * leftchild;
    struct _TreeNode * rightchild;
    };
    重命名 typedef struct _TreeNode TreeNode 
    定义一个指针类型 typedef struct _TreeNode * TreeNodePointer  
    注意:struct _TreeNode *这才是指针类型,TreeNodePointer是类型的名字
    */
    
    void Test1(){
        //定义结构体对象
        TreeNode t1, t2, t3, t4, t5;
        //填充数据域
        t1.data = 1;
        t2.data = 2;
        t3.data = 3;
        t4.data = 4;
        t5.data = 5;
    
        //建立树之间的关系
        //t1是根节点  t2是t1的左孩子
        t1.leftchild = &t2;
        t1.rightchild = NULL;
    
        // t3是t2的左孩子
        t2.leftchild = &t3;
        t2.rightchild = NULL;
    
        // t4是t2的左孩子
        t3.leftchild = &t4;
        t3.rightchild = NULL;
    
        // t5是t4的左孩子
        t4.leftchild = &t5;
        t4.rightchild = NULL;
    
        //t5没有孩子节点
        t5.leftchild = NULL;
        t5.rightchild = NULL;
    }
    
    void Test2(){
        //定义结构体对象
        TreeNodePointer t1 = NULL, t2 = NULL, t3 = NULL, t4 = NULL, t5 = NULL;
        t1 = (TreeNodePointer)malloc(sizeof(TreeNode));
        if (t1==NULL)
        {
            printf("分配内存失败!");
            goto END;
        }
        //初始化数据
        memset(t1, 0, sizeof(TreeNode));
        t2 = (TreeNodePointer)malloc(sizeof(TreeNode));
        if (t2 == NULL)
        {
            printf("分配内存失败!");
            goto END;
        }
        //初始化数据
        memset(t2, 0, sizeof(TreeNode));
        t3= (TreeNodePointer)malloc(sizeof(TreeNode));
        if (t3 == NULL)
        {
            printf("分配内存失败!");
            goto END;
        }
        //初始化数据
        memset(t3, 0, sizeof(TreeNode));
        t4 = (TreeNodePointer)malloc(sizeof(TreeNode));
        if (t4 == NULL)
        {
            printf("分配内存失败!");
            goto END;
        }
        //初始化数据
        memset(t4, 0, sizeof(TreeNode));
        t5 = (TreeNodePointer)malloc(sizeof(TreeNode));
        if (t5 == NULL)
        {
            printf("分配内存失败!");
            goto END;
        }
        //初始化数据
        memset(t5, 0, sizeof(TreeNode));
        //填充数据域
        t1->data = 1;
        t2->data = 2;
        t3->data = 3;
        t4->data = 4;
        t5->data = 5;
    
        //建立树之间的关系
        //t1是根节点  t2是t1的左孩子
        t1->leftchild = t2;
        t1->rightchild = NULL;
    
        // t3是t2的左孩子
        t2->leftchild = t3;
        t2->rightchild = NULL;
    
        // t4是t2的左孩子
        t3->leftchild = t4;
        t3->rightchild = NULL;
    
        // t5是t4的左孩子
        t4->leftchild = t5;
        t4->rightchild = NULL;
    
        //t5没有孩子节点
        t5->leftchild = NULL;
        t5->rightchild = NULL;
    
    END:
        if (t1!=NULL)
        {
            free(t1);
            t1 = NULL;
        }
        if (t2 != NULL)
        {
            free(t2);
            t2 = NULL;
        }
        if (t3 != NULL)
        {
            free(t3);
            t3 = NULL;
        }
        if (t4 != NULL)
        {
            free(t4);
            t4 = NULL;
        }
        if (t5 != NULL)
        {
            free(t5);
            t5 = NULL;
        }
    }
    
    void main(){
        
        system("pause");
    }

  • 相关阅读:
    git 学习网站
    Vue 部署在 IIS 上
    Element UI 的坑
    Vue 中 Prop 传至的 一个Bug
    Asp.net Core 部署在 IIS上
    今天用UniApp开发, 用到 Vuex 中的 mutations, 设置值的时候好像只能传2个参数, 第一个是固定的state, 第二个是一个值, 不能传第三个了
    anxios 和 uni.request 访问Asp.net 服务器传参出错的坑
    内网计算机设置问题说明
    关于综合布线
    Android学习 -- Activity 以及Activity之间值传递
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5722578.html
Copyright © 2020-2023  润新知