我如何在java中表示图形?

时间:2015-03-03 18:26:46

标签: java algorithm graph graph-algorithm

我有这张图

enter image description here

图表中的

和P取值{1,2,3,4,5}

我想在java

中表示此图表 你可以帮我理解吗?

提前谢谢

2 个答案:

答案 0 :(得分:2)

您还可以使用以下代码段来使用附件列表 -

    int n;
    List<Integer>[] adj;
    AdjacencyLists(int n0) {
        n = n0;
        adj = (List<Integer>[])new List[n];
        for (int i = 0; i < n; i++) 
            adj[i] = new ArrayStack<Integer>(Integer.class);
    }  

然后使用函数 -

添加边缘
void addEdge(int i, int j) {
        adj[i].add(j);
    } 

或者可以删除边缘 -

void removeEdge(int i, int j) {
        Iterator<Integer> it = adj[i].iterator();
        while (it.hasNext()) {
            if (it.next() == j) {
                it.remove();
                return;
            }
        }    
    }  

甚至检查是否存在边缘 -

boolean hasEdge(int i, int j) {
        return adj[i].contains(j);
    }  

您可以在此处找到有关adjacency list的更多详细信息。

或者您可以使用adjacency matrix

希望它会有所帮助 非常感谢

答案 1 :(得分:1)

尝试一个关联矩阵,这是我认为最简单的方法之一。

http://en.wikipedia.org/wiki/Incidence_matrix