如下图所示,我有一个程序按顺序存储树的数据。
例如:A[7]={0,1,2,3,4,5,6};
我希望以级别顺序的方式进行转换:这样第一个节点是根,左子节点可以在 2i+1 位置找到,右子节点可以在第 2i+2 位置找到,任何节点的父节点都可以可以在第 i/2 个位置找到。
即:
B[0]=A[3]
B[1]=A[1]
B[2]=A[5]
B[3]=A[0]
B[4]=A[2]
B[5]=A[4] and
B[6]=A[6]
我被卡住了,找不到任何策略。
我需要执行此操作来为我之前编写的算法创建兼容的树结构。
数据集包含数千个节点,无法手动完成。请为此建议一个迭代或递归算法。
谢谢。