假设边界具有A---B---C
|
D
值的无向图。
示例图:
A,B : 1
B,C : 2
B,D : 2
示例边缘值:
HashMap<String,Tuple>
我正在编写一个执行以下操作的程序:给定一个节点,返回节点所涉及的所有边以及相关值。例如:IN:B→OUT:(C,2),(D,2)。或IN:C→OUT:(B,2)。 我正在寻找一个有效的数据结构来做到这一点。问题不是来自图论,我只是用它来解释它。我对最短路径等不感兴趣,只是这种数据存储。
我唯一能够快速提出的方法是:
class Tuple{
String node;
int value;
}
,其中
hm.add(A, new Tuple(B,1))
hm.add(B, new Tuple(A,1))
然后我将每个边缘放在这个集合中两次,例如(伪代码):
PhpUnusedAliasInspection inspection = new PhpUnusedAliasInspection();
InspectionManager manager = InspectionManager.getInstance(psiFile.getProject());
List<ProblemDescriptor> checked = inspection.processFile(psiFile, manager);
System.out.println("checked " + checked);
有更有效的方法吗?