关于BiTNode和*BiTree的简单理解

1024程序员节日快乐 💯💯💯💯
目前正在考研,时间紧任务重,为了庆祝节日,发一篇博客吧。
本文阐述了我对BiTNode和*BiTree的简单理解的简单理解

1.声明一个结构体

typedef struct XXXBiTNode{
    int data;
    struct XXXBiTNode *lchild,*rchild;
}BiTNode,*BiTree;//二叉树结点结构

2.关于BiTNode和*BiTree的理解

typedef 是起一个别名的意思
在这里BiTNode实际上相当于struct XXXBiTNode
在结构体定义时:
	struct XXXBiTNode varName来定义变量,
	但要注意,使用XXXBiTNode varName来定义变量是不对的
	因为struct和XXXBiTNode合在一起才能表示一个结构类型。
	我们需要用typedef来起一个别名 
	使得BiTNode相当于struct XXXBiTNode,这样我们就可以使用BiTNode varName来定义变量。
同理:
	 struct XXXBiTNode *BiTree 将 struct XXXBiTNode *这个类型重命名为BiTree(BiTree被定义成了结构体地址类型)
	 当采用BiTree再定义指针时候:BiTree *root其本质就是struct XXXBiTNode **root
	 此时root是一个二级指针,二级指针变量root指向一级指针变量BiTree,并保存BiTree的地址

3.其他理解

在分配空间时:
	一个指针节点需要的空间大小与BiTNode的大小和结构体内部结构有关。 
	因此分配空间的时候采用*root=(BiTNode *) malloc(sizeof (BiTNode)); 
	分配一片大小为BiTNode的连续内存空间,然后返回首地址,root就指向这个地址。
	root相当于门牌号,那么*就是家里的钥匙。
	*root就是我打开地址为root的门(回家),开门之后我们才能看到家里的好吃的(取数据)。
	因此*root才能进行赋值等操作,开门之后才能对家里的东西进行操作。 
  • 16
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@李思成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值