我正在处理这个问题,我不确定:
类Z的行为类似于众所周知的数据结构?
可能的答案是:
通过查看代码,我认为答案是D - union找到。如果我们查看方法查询,最后或第一个,我们看到它使用Union-find数据结构来确定数组是否相等。
Intent intent = new Intent(this, juiceMenu.class);
答案 0 :(得分:0)
是的,你是对的 - 它可以用作Union Find数据结构。如果z
是此类的实例,则可以将Union写为if !z.query(i, j) z.update(i, j)
,并且可以编写查找z.last(i)
。
Z
将整数0, 1, ..., N-1
保存在一组不相交的列表中,每个整数最初都在自己的列表中。 update(i, j)
将包含j
的列表附加到包含i
的列表中。 first(i)
和last(i)
返回包含i
的列表的第一个和最后一个元素。 query(i, j)
报告i
和j
是否在同一个列表中。
如果update(i, j)
和i
不在同一列表中,则实现只需要调用j
(否则列表会成为循环,并且后续调用任何方法都可能不会终止),由于没有进行通常的不相交联合数据结构优化,其效率很差。