Z类表现得像哪个着名的数据结构?

时间:2016-04-10 00:01:25

标签: algorithm data-structures

我正在处理这个问题,我不确定:

  

类Z的行为类似于众所周知的数据结构?

可能的答案是:

  • 甲。 (LIFO)堆栈。
  • B中。 (FIFO)队列。
  • ℃。优先队列。
  • d。联盟查找。

通过查看代码,我认为答案是D - union找到。如果我们查看方法查询,最后或第一个,我们看到它使用Union-find数据结构来确定数组是否相等。

Intent intent = new Intent(this, juiceMenu.class);

1 个答案:

答案 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)报告ij是否在同一个列表中。

如果update(i, j)i不在同一列表中,则实现只需要调用j(否则列表会成为循环,并且后续调用任何方法都可能不会终止),由于没有进行通常的不相交联合数据结构优化,其效率很差。