Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加权图在Java中的实现_Java - Fatal编程技术网

加权图在Java中的实现

加权图在Java中的实现,java,Java,我刚开始学习算法和数据结构课程。几个小时以来,我一直在尝试实现加权图,但我无法为边添加权重。你建议我做什么 这是我的密码: 公共类图{ int numberOfNodes=0; Hashtable adjacentList=新的Hashtable(); 公共void addNode(int节点){ put(node,newArrayList()); numberOfNodes++; } 公共无效添加(int节点1、int节点2){ 获取(node1)、添加(node2); 获取(node2)、添

我刚开始学习算法和数据结构课程。几个小时以来,我一直在尝试实现加权图,但我无法为边添加权重。你建议我做什么

这是我的密码:

公共类图{
int numberOfNodes=0;
Hashtable adjacentList=新的Hashtable();
公共void addNode(int节点){
put(node,newArrayList());
numberOfNodes++;
}
公共无效添加(int节点1、int节点2){
获取(node1)、添加(node2);
获取(node2)、添加(node1);
}
公共连接(){
Object[]keys=adjacentList.keySet().toArray();
用于(对象关键点:关键点){
System.out.println(key+“-->”+adjacentList.get(Integer.parseInt(key.toString()));
}
}
公共静态void main(字符串[]args){
图形=新图形();
图1.addNode(5);
图.addNode(54);
图.addNode(44);
图.附录(5,54);
图.附录(5,44);
graph.showConnections();
}
}
公共最终课程图表{
私有最终映射邻接列表=新HashMap();
私有最终映射权重=新HashMap();
公共void addNode(int节点){
computeIfAbsent(节点,键->新建树集());
}
公共无效补遗(整数1、整数2、双重权重){
addDirectedEdge(一、二、重量);
addDirectedEdge(两个,一个,重量);
}
私有void adddirectedge(整数1、整数2、双倍权重){
addNode(一个);
addNode(两个);
获取(一个),添加(两个);
设定重量(一、二、重量);
}
专用无效设定重量(整数一、整数二、双倍重量){
computeIfAbsent(一,键->新建HashMap());
重量:拿(一)把(二,重量);
}
公共连接(){
对于(Map.Entry:adjacentList.entrySet()){
int one=entry.getKey();
System.out.print(entry.getKey()+“-->[”;
布尔逗号=假;
for(int-two:entry.getValue()){
if(逗号)
系统输出打印(“,”);
逗号=真;
双倍重量=重量。得到(一)个。得到(二);
System.out.format(Locale.ENGLISH,“%d(重量:%.2f)”,2,重量);
}
System.out.println(']');
}
}
公共静态void main(字符串…参数){
图形=新图形();
图1.addNode(5);
图.addNode(54);
图.addNode(44);
图.附录(5,54,1.1);
图.附录(5,44,2.2);
graph.showConnections();
}
}
输出:

5 ---> [44 (weight: 2.20), 54 (weight: 1.10)]
54 ---> [5 (weight: 1.10)]
44 ---> [5 (weight: 2.20)]

看看这里:如果您需要进一步的解释,请阅读该页上的图表文章谢谢您提供了这个伟大的解决方案。一开始有点困惑,但多亏了你,我学到了很多。