Java-使用邻接列表实现的图的节点与整数
我在为技术面试而学习,图表对我来说有点难。我对邻接矩阵很简单,但对邻接列表的实现感到困惑 问题是我在线看到的大多数邻接列表的实现(,和)根本不使用节点。他们只使用Int和LinkedList的HashMap。这是正确的吗?因为定义()说它由顶点或节点组成。此外,大多数使用邻接矩阵的图的实现都使用节点,而不是整数。我是不是错过了什么?这个谜题是什么 我知道使用INT而不是节点更节省空间,但是它会导致更多的复杂性。例如,查看示例1中的这段代码-Java-使用邻接列表实现的图的节点与整数,java,graph,nodes,adjacency-list,adjacency-matrix,Java,Graph,Nodes,Adjacency List,Adjacency Matrix,我在为技术面试而学习,图表对我来说有点难。我对邻接矩阵很简单,但对邻接列表的实现感到困惑 问题是我在线看到的大多数邻接列表的实现(,和)根本不使用节点。他们只使用Int和LinkedList的HashMap。这是正确的吗?因为定义()说它由顶点或节点组成。此外,大多数使用邻接矩阵的图的实现都使用节点,而不是整数。我是不是错过了什么?这个谜题是什么 我知道使用INT而不是节点更节省空间,但是它会导致更多的复杂性。例如,查看示例1中的这段代码- // add edge from vertices v
// add edge from vertices v1 to v2
void addEdge(int v1,int v2){
adj.get(v1).add(v2);
}
其目的是将边从v1添加到v2。它完全忽略了可能存在多个具有相同int值的顶点的可能性,在这种情况下,addEdge()方法可能会在意外顶点之间添加边
那么,示例1、2、3中邻接列表的实现是否错误?如果他们是对的,那么如果我使用节点而不是整数实现邻接列表,这会不会很糟糕?我不想让我的面试官认为我是个白痴,哈哈,你可以直接使用Node(包含数据类型)或datatype(在你的例子中是Integer),它们都可以工作但是,由于以下几个原因,使用Node是一个更好的选择
class Node<T>{
T data;
}
类节点{
T数据;
}