上体所述,我们要怎么求出这棵树的根节点呢?
我们可以采用静态链表的方式来进行储存,从而直观的找出根节点的位置
我们将所有节点储存在一个包含特殊数组(数组元素包括:节点数据、两个节点下表)中,将对应左右子节点的下标存放在数组中,没有子节点则设置为-1
这样,当我们遍历完所有节点后发现没有出现的数字所对应的数组元素就是根节点,而且通过储存所有子节点的下标也可以唯一的确定一棵树。
遍历的函数如下
(*这个语句是因为储存的是char类型,所以通过-‘0’的方式便可以将对应的ARCII码转换为数字)
//函数解释:建立一个节点数大小的工具数组,初始化为0
//将工具数组里下表为每个特殊数组节点的元素赋值为1
//最终工具数组里值为0的元素所对应的下标就是特殊数组里的根节点下标
由于这种存储方式既能拥有链表的存储的灵活性(通过设定节点下表的方式快速实现对节点的删除、添加和修改),又能通过数组的形式进行储存,因此称为静态链表。