スタックを使用してグラフの深さ優先検索を実装しようとしています。ただし、型変数に関するエラーが発生し続けます。ここに私のコードのセクションがあります:
public Result<T> depthFirstSearchFrom(String vertexId, Predicate< IVertex<T> > pred){
Result<T> result = new Result<T>();
IVertex<T> startVertex = getVertex(vertexId);
Stack stack = new Stack();
stack.add(startVertex);
while (!stack.isEmpty()){
IVertex<T> current = stack.pop();
boolean visited = visitedVertices.contains(tgtVertex);
tgtVertex.getLabel().setParentVertex(current);
if (!visited){
stack.add(tgtVertex);
}
}
if (stack.isEmpty()){
result.setVisitedVertices(visitedVertices);
result.setPathCost(Float.POSITIVE_INFINITY);
}
}
return result;
}
エラーは次の行で発生します。
エラー: 互換性のない型: T が型変数の場合、オブジェクトを IVertex に変換できません
IVertex<T> current = stack.pop();
と
エラー: E が型変数である raw 型 Vector のメンバーとしての add(E) のチェックされていない呼び出し。
stack.add(tgtVertex);