• 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 .....

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

  • 相关阅读:
    希尔排序
    快速排序
    归并排序
    插入排序
    简单选择排序
    冒泡排序
    算法之时间复杂度和空间复杂度
    数据结构与算法思维导图
    rootfs根文件系统
    kernel 2.6.35.7向S5PV210移植
  • 原文地址:https://www.cnblogs.com/zhangpengfei5945/p/11731321.html
Copyright © 2020-2023  润新知