非递归地比较两个二叉树

时间:2015-03-06 15:14:56

标签: c

如果两个二叉树是否相等,我可以非递归地测试吗?

最大节点数是2 ^ 16(= 65356),我的内存非常小。

树形结构:

typedef struct tip_arbore
{
     int val;
     struct tip_arbore *s;
     struct tip_arbore *d;
} Arbore;

如果我不能,我怎样才能将应用程序设置为使用更多内存(它是一个控制台应用程序)?我有多个树,但所有节点的总和是2 ^ 16,但我为每个树都有一个16个字符的数组。

记忆很小,所以我不认为我可以递归地比较它们。

1 个答案:

答案 0 :(得分:0)

简单地说,任何二叉树都可以实现为数组。您只需将其转换为数组并在同一索引上相互比较每个元素。

编辑: 如果尚未实施树,请检查http://webdocs.cs.ualberta.ca/~holte/T26/tree-as-array.htmlhttp://algoviz.org/OpenDSA/Books/OpenDSA/html/CompleteTree.html以获取有关如何执行此操作的一些信息。