小白篇—如何将普通二叉树转换成“孩子兄弟”表示法(软件评测师知识点之一)

将普通二叉树转换成“孩子兄弟”表示法

孩子兄弟表示法:采用的是链式存储结构,其存储树的实现思想是:从树的根节点开始,依次用链表存储各个节点的孩子节点和兄弟节点。

因此,该链表中的节点应包含以下 3 部分内容:

  • 节点的值;
  • 指向孩子节点的指针;
  • 指向兄弟节点的指针;
孩子指针域数据域兄弟指针域

以某年软件评测师的一题选择题为例
25.对于一般的树结构,可以采用孩子-兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子-兄弟表示如下图所示。以下关于结点D与E的关系的叙述中,正确的是(25)。
在这里插入图片描述
A.结点D与结点E是兄弟
B.结点D是结点E的祖父结点
C.结点E的父结点与结点D的父结点是兄弟
D.结点E的父结点与结点D是兄弟

解析:首先,题目给出的是转换后的“孩子兄弟表示法”。我们可以根据逆推得到原二叉树,再根据得到的原二叉树得出选项D。

逆推出来的原二叉树:
在这里插入图片描述
可以两图进行对比,普通二叉树转换成“孩子兄弟”表示法:
从根结点开始,每个结点的左分支是孩子,右分支是兄弟,(如果有两个以上的兄弟,可以一直分左分支下去)所以,只需要记住“孩子兄弟”表示法就是:左孩子右兄弟。即可。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值