• c使用二叉链表创建二叉树遇到的一些疑问和思考


    二叉链表存储二叉树

    学习的时候参考的是《大话数据结构》,书中是这样定义的

    typedef char TElemType;
    
    typedef struct BiTNode {
        TElemType data;
        struct BiTNode *lchild,*rchild;
    }BiTNode,*BiTree;
    

    结构是这样的,每个节点都存储着当前节点的值,还存储着指向左节点的指针和右节点的指针

    typedef 是干什么的

    typedef 可以用来定义真实的类型名

    一开始我不理解

    typedef struct BiTNode {
         
    }*BiTree;
    

    后来通过类比,char === TElemType
    那么 BiTree = struct BiTNode*;

    所以使用 typedef 可以定义真实类型名,也方便我们后期维护,后期如果我们需要修改变量的类型,可以直接修改 typedef 的定义就可以了

    创建二叉树的时候为什么要传指向二叉树节点的指针的指针 struct BiNode* *T

    这个问题的存在还是自己没有真正理解指针的使用场景,当我们创建新的节点的时候,我们首先要需要定义一个指向节点地址的指针,我们将这个指针传入到函数当中,我们这个指针的指向是结构体的地址,所以如果我们想要获取结构体的话
    需要使用 *T 获取这个结构体指针的内容,有点绕,需要我们平常使用的时候多多留心使用

    以后解决问题可以用到的思想和方法

    类比 类似于 数学中的 数学归纳法 n = 1,n = 2,n = 3 .....

    将我们不熟悉的东西或者感觉到陌生和害怕的东西转化为我们使用过的熟悉的东西或者知识点进行理解和使用。

  • 相关阅读:
    Web 日志分析过程
    nginx系列之九:lua服务
    Linux网络编程之IO模型
    从URL输入到页面展现到底发生什么
    CentOS 日常运维十大技能
    以MySQL为例,详解数据库索引原理(1)
    Elasticsearch的特点以及应用场景
    Ubuntu1804编译安装LNMP
    golang 高级
    Centos7 安装 Redis
  • 原文地址:https://www.cnblogs.com/zhangpengfei5945/p/11731321.html
Copyright © 2020-2023  润新知