如果两个二叉树是否相等,我可以非递归地测试吗?
最大节点数是2 ^ 16(= 65356),我的内存非常小。
树形结构:
typedef struct tip_arbore
{
int val;
struct tip_arbore *s;
struct tip_arbore *d;
} Arbore;
如果我不能,我怎样才能将应用程序设置为使用更多内存(它是一个控制台应用程序)?我有多个树,但所有节点的总和是2 ^ 16,但我为每个树都有一个16个字符的数组。
记忆很小,所以我不认为我可以递归地比较它们。
答案 0 :(得分:0)
简单地说,任何二叉树都可以实现为数组。您只需将其转换为数组并在同一索引上相互比较每个元素。
编辑: 如果尚未实施树,请检查http://webdocs.cs.ualberta.ca/~holte/T26/tree-as-array.html或http://algoviz.org/OpenDSA/Books/OpenDSA/html/CompleteTree.html以获取有关如何执行此操作的一些信息。