• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

BiTNode和*BiTree的理解

武飞扬头像
@李思成
帮助1

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才能进行赋值等操作,开门之后才能对家里的东西进行操作。 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcifae
系列文章
更多 icon
同类精品
更多 icon
继续加载