【问题标题】:LinkedList for each index in the LinkedList ArrayLinkedList 数组中每个索引的 LinkedList
【发布时间】:2018-04-10 19:11:31
【问题描述】:

这里有什么问题?。我正在尝试通过使用 util 包中的集合来实现图形数据结构,使用邻接列表。这里

LinkedList 数组,其中包含一些整数。 该 LinkedList 的每个元素都包含另一个 LinkedList 类型:节点。

但是在编译过程中,它说不兼容的类型。 如何解决这个问题?

 //Sum of dependencies in a graph
import java.util.*;
class node
{
     int vertex,weight;
     public node(int v,int w)
     {
          vertex = v;
          weight = w;
     }
}
public class dependency
{
 int V;
 LinkedList<Integer> adj[];
 public dependency(int v)
 {
      V = v;
      adj = new LinkedList<Integer>[v];
      for (int i=0;i < v ;i++ ) {
           adj[i] = new LinkedList<node>();
      }
 }
 void addEdge(int v,node l)
 {
      adj[v].add(l);
 }
 void BFS(int s)
 {
      boolean visited[] = new boolean[V];
      LinkedList<Integer> queue = new LinkedList<Integer>();
      visited[s] = true;
      queue.add(s);
      while(queue.size() != 0)
      {
           s = queue.poll();
           System.out.println(s+" ");

           Iterator<Integer> i = adj[s].listIterator();
           while(i.hasNext())
           {
                int n = i.next();
                if(!visited[n])
                {
                     visited[n] = true;
                     queue.add(n);
                }
           }
      }
 }
 public static void main(String[] args) {
      graph g = new graph(4);
      node a = new node(1,10);
      node b = new node(2,20);
      node c = new node(2,30);
      node d = new node(0,20);
      node e = new node(3,30);
      node f = new node(3,20);
      g.addEdge(0, a);
      g.addEdge(0, b);
      g.addEdge(1, c);
      g.addEdge(2, d);
      g.addEdge(2, e);
      g.addEdge(3, f);

    System.out.println("Following is Breadth First Traversal "+
                       "(starting from vertex 2)");

    g.BFS(2);
 }
}

【问题讨论】:

    标签: java data-structures graph collections linked-list


    【解决方案1】:

    您已经声明了一个LinkedList&lt;Integer&gt; 类型的LinkedLists 数组,但您试图将LinkedList&lt;node&gt; 存储在数组中。您似乎从未使用过nodeweight 属性,因此您应该将adj[i] = new LinkedList&lt;node&gt;(); 更改为adj[i] = new LinkedList&lt;Integer&gt;();

    【讨论】:

    • 但实际上我需要整数 LinkedList 数组(用于存储顶点),其元素的 LinkedList 类型为:node(用于存储相邻节点及其权重)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2017-02-18
    相关资源
    最近更新 更多