gpt4 book ai didi

java - DirectedGraph : addVertex(Vertex v), String 无法转换为 Vertex

转载 作者:行者123 更新时间:2023-11-30 11:11:29 24 4
gpt4 key购买 nike

我正在尝试学习和实现有向图,但在执行程序时遇到了一些困难。

// ADD Function
public boolean addVertex(Vertex<T> v)
{
boolean added = false;
if (verticies.contains(v) == false)
{
added = verticies.add(v);
return true;
}
return added;
}

class Vertex<T>
{

private String name;
private T data;

/**
* Create a Vertex with name n and given data
*
* @param n - name of vertex
* @param data - data associated with vertex
*/
public Vertex(String n, T data)
{
incomingEdges = new java.util.ArrayList<Edge<T>>();
outgoingEdges = new java.util.ArrayList<Edge<T>>();
name = n;
this.data = data;
}
}

// Initialization of the Vertices & Edges
public GraphImpl()
{
verticies = new java.util.ArrayList<Vertex<T>>();
edges = new java.util.ArrayList<Edge<T>>();
}

错误:执行程序时,我在调用 addVertex(String) 函数时输入字符串作为输入,它给出了一个错误,String cannot be converted to Vertex。来自 Java 的错误记录:java.lang.ClassCastException: java.lang.String 无法转换为 DG.Vertex

有人可以解释一下我做错了什么吗?谢谢。

最佳答案

问题是您没有函数 addVertex(String)。

您的函数是 addVertex(Vertex),因此您需要创建一个新的 Vertex 对象并将其添加到 Graph 中。关键是顶点需要名称和数据。

示例代码:

DirectedGraph<String> directedGraph = new DirectedGraph<String>();
// Create a vertex object with both a name and data
Vertex<String> sampleVertex = new Vertex<String>("name", "data"):
directedGraph.addVertex(sampleVertex);

如果这仍然不能解决您的问题,请发布一个示例,其中包含 Edge 类和尝试调用 addVertex() 的主要方法。

关于java - DirectedGraph : addVertex(Vertex<T> v), String 无法转换为 Vertex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403574/

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