我正在尝试创建一个邻接列表类。我试图用HashMap做到这一点。每个桶指向列表列表,最后一个列表的大小为3。 不幸的是,我还没有设法让它发挥作用。任何帮助,将不胜感激。 我的代码行出错了
uList.get(0)。新增(V); uList.get(1)。新增(能力); uList.get(2)。新增(流动);
/* Adjacency list */
public class AdjacencyList
{
Map< Integer, ArrayList<ArrayList<Integer>> > adjList;
//Constructor
public AdjacencyList(int V)
{
// 0 -> [ [v1,capacity1,flow1] , [v2,capacity2,flow2] , ...]
adjList = new HashMap< Integer, ArrayList<ArrayList<Integer> >>();
for(int i = 1; i<V+1; i++)
{
adjList.put(i, new ArrayList<ArrayList<Integer>>());
}
}
// method for adding an edge (->node) with its
// - current capacity (aka remaining flow)
// - current flow
public void addEdge(int u, int v, int capacity, int flow)
{
ArrayList<ArrayList<Integer>> uList = new ArrayList<ArrayList<Integer>>();
System.out.println("ul: " + uList);
uList.get(0).add(v); uList.get(1).add(capacity); uList.get(2).add(flow);
adjList.put(u, uList);
}
// method for retrieving a list of children to u (u->v1,v2,v3,...)
public ArrayList<ArrayList<Integer>> getEdge(int u)
{
return adjList.get(u);
}
}