伪代码比较两棵树

ian*_*ayo 20 algorithm tree pseudocode

这是我遇到的一个问题,并且没有确信我使用过最有效的逻辑.

例如,假设我有两棵树:一个是文件夹结构,另一个是该文件夹结构的内存"模型".我希望比较两棵树,并生成一个树中存在的节点列表而不是另一棵树 - 反之亦然.

是否有可接受的算法来处理这个问题?

Jer*_*est 10

好像你只是想做一个预订遍历,基本上."访问"节点意味着检查一个版本而不是另一个版本的子项.

更准确地说:从根开始.在每个节点上,在节点的两个版本中的每个版本中获取一组项目.两组的对称差异包含一个而不是另一个的项目.打印/输出那些.交集包含两者共有的项目.对于交集中的每个项目(我假设您不打算进一步查看一棵树中缺少的项目),在该节点上递归调用"visit"以检查其内容.这是一个O(n)操作,带有一点递归开销.