gpt4 book ai didi

java - 构建加权无向图

转载 作者:行者123 更新时间:2023-12-02 00:48:42 25 4
gpt4 key购买 nike

我正在使用 Java 进行编码挑战,其中我的驱动程序从文本文件中读取城市名称以及城市之间的里程。然后,该信息将被传递给一个方法,该方法将填充一个加权的无向图。城市名称是节点,它们之间的里程是权重。我正在编写 Graph 类,并且使用链接列表数据类型作为邻接矩阵。

import java.util.LinkedList;

public class WeightedGraph {

static class Edge
{
String origin;
String destination;
int weight;

public Edge(String origin, String destination, int weight)
{
this.origin = origin;
this.destination = destination;
this.weight = weight;
}
}

static class Graph
{
int numVertices;
LinkedList<Edge>[] adjList;

Graph(int numVertices)
{
this.numVertices = numVertices;
adjList = new LinkedList[numVertices];

for(int i = 0; i < numVertices; i++)
{
adjList[i] = new LinkedList<>();
}
}

}

public void addUndirectedEdge(String origin, String destination, int weight)
{
Edge edge = new Edge(origin, destination, weight);
adjList[origin].add(edge);
adjList[destination].add(edge);
}
}
<小时/>

在我正在使用的示例中,节点是编号的,而不是命名的,并且变量“origin”和“destination”是整数。有人建议我需要获取字符串的索引值并在以下行中使用这些值:

        adjList[origin].add(edge);
adjList[destination].add(edge);

位于 addUndirectedEdge 方法中。我怎么做?我需要将变量“origin”和“domain”声明为整数而不是字符串吗?

最佳答案

    adjList[origin].add(edge);
adjList[destination].add(edge);

这里的出发地和目的地是字符串。并且您正在尝试通过字符串获取数组项。

关于java - 构建加权无向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57877087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com