这是与该问题相关的示例代码。该API试图实现一个具有邻接列表表示形式的图形,该图形是由图形中每个顶点索引的Bags数组。
public class Graph{
private final int V; //no. of vertices
private Bag<Integer>[] adj; // A bag for each vertex to store all adjacent vertices
.
.
.
}
与链接列表或Set相比,在此处使用Bag有什么优势吗?我知道行李是无序的,但是为什么当它们没有节省我们的时间或空间时又为什么要选择无序的 list 呢?
最佳答案
一个Bag可能用二叉搜索树或哈希表实现,给我们O(log n)或O(1)搜索。链表将进行O(n)个搜索。
集合仅允许唯一的元素,因此,如果您需要存储重复项,则需要一个袋子。 Java Collections库中的TreeSet或HashSet将分别为我们提供O(log n)或O(1)搜索。
通常,当您经常需要执行搜索或删除操作时,“Set”或“Bag”界面将更合适。如果您只需要添加到集合的末尾并对其进行迭代,则不会有太大的区别。
关于java - 将Bag数据结构与Set或Linkedlist等其他图形实现API相比,有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649555/