静态链表(数组)表示二叉树

文章介绍了使用静态链表的方式存储树结构,通过节点数据和子节点下标数组来找到根节点,同时强调了这种方法的灵活性,便于节点操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 上体所述,我们要怎么求出这棵树的根节点呢?

我们可以采用静态链表的方式来进行储存,从而直观的找出根节点的位置

我们将所有节点储存在一个包含特殊数组(数组元素包括:节点数据、两个节点下表)中,将对应左右子节点的下标存放在数组中,没有子节点则设置为-1

这样,当我们遍历完所有节点后发现没有出现的数字所对应的数组元素就是根节点,而且通过储存所有子节点的下标也可以唯一的确定一棵树。

遍历的函数如下

(*这个语句是因为储存的是char类型,所以通过-‘0’的方式便可以将对应的ARCII码转换为数字)

//函数解释:建立一个节点数大小的工具数组,初始化为0

//将工具数组里下表为每个特殊数组节点的元素赋值为1

//最终工具数组里值为0的元素所对应的下标就是特殊数组里的根节点下标

由于这种存储方式既能拥有链表的存储的灵活性(通过设定节点下表的方式快速实现对节点的删除、添加和修改),又能通过数组的形式进行储存,因此称为静态链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值