二阶树来自预购和顺序遍历
如何通过这些pre / in顺序遍历获取树形式:
Pre:A,B,D,E,C,F,G,H
在:E,d,B,A,G,F,H,C
编辑:我的回答
A
/
B C
/
D F
/ /
E G H
没有找到相关结果
已邀请:
3 个回复
邵酮
你知道A是根,因为它开始预订。使用顺序排列A的左侧和右侧的节点.B是第二个节点(预订),左侧是A(有序),依此类推。 你知道F,G,H由于有序排列而留在C中。 基本上,使用preorder选择下一个节点,并按顺序查看它是父节点的左侧还是右侧。 编辑(2011年4月18日): 为了展示这个过程的机械性,我提供了这个伪代码:
诀窍是使用有序序列来确定节点是否添加到其父节点的左侧或右侧,例如:
我正在传递一个lamba,但是传递比较器的任何等效方法都应该这样做。
膝垫富顷
} ` 您需要通过以下代码调用该函数:
如果您需要更详细的代码说明,请在评论中提及。我很乐意帮助:)。
珊畴炮贩号
以下是
和
的一种可能实现方式。一些测试: