数据结构(java)版今天看到了图那一章,也按着其大体思路编码。发现作者很多地方实现的很巧妙。
类图如下:
图的表示是基于邻接表实现。
EGraph中的vInfos存有当前图中所有的顶点。verMap为 T - Integer键值对,vertextCache为已删除节点的索引栈,但节点删除后只并没有将其从vInfos中移走,只是将其occupied属性值为false,同时将其从verMap中移走,将其索引压入栈中以便插入新节点是使用。
VertexInfo为储存顶点信息,vertext储存顶点值,edgeList储存以该顶点为起始点的所有边信息。
Edge 为边信息,dest为该边中点在vInfos中的位置,weight为该边的权值。
以下为针对这个图的测试
graph1.dat
5
A B C D E
6
A B 3
A C 2
B C 6
C B 4
C D 1
E B 5
package com.woxiaoe.ds.graph;
import java.io.File;
import java.util.Scanner;
import junit.framework.TestCase;
public class GraphTest extends TestCase {
EGraph<String> graph = new EGraph<String>();
@Override
protected void setUp() throws Exception {
Scanner scn = new Scanner(new File("graph1.dat"));
int vertexNum,edgeNum;
vertexNum = scn.nextInt();
for(int i = 0 ; i < vertexNum; i++){
graph.addVertex(scn.next());
}
edgeNum = scn.nextInt();
for(int i = 0; i < edgeNum; i++){
graph.addEdge(scn.next(), scn.next(), scn.nextInt());
}
}
public void testReadGraph(){
System.out.println("边数:" + graph.numberOfEdges());
System.out.println("顶点数" + graph.numberOfVertices());
System.out.println("C - D 权值 :" + graph.getWeight("C", "D"));
graph.setWeight("C", "D", 10);
System.out.println("更改后的 - D 权值 :" + graph.getWeight("C", "D"));
System.out.println("删除C - D" + graph.removeEdge("C", "D"));
System.out.println("删除C-D后边数:" + graph.numberOfEdges());
System.out.println("删除C-D后顶点数:" + graph.numberOfVertices());
System.out.println("删除顶点C:" + graph.removeVertex("C"));
System.out.println("删除顶点C后边数:" + graph.numberOfEdges());
System.out.println("删除顶点C后顶点数:" + graph.numberOfVertices());
}
}
Output:
边数:6
顶点数5
C - D 权值 :1
更改后的 - D 权值 :10
删除C - Dtrue
删除C-D后边数:5
删除C-D后顶点数:5
删除顶点C:true
删除顶点C后边数:2
删除顶点C后顶点数:4
- 大小: 31.9 KB
- 大小: 10.6 KB
分享到:
相关推荐
基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现五子棋游戏.zip基于Java NIO实现五子棋游戏.zip 基于Java NIO实现...
基于Java Servlet实现的灾情控制系统基于Java Servlet实现的灾情控制系统 基于Java Servlet实现的灾情控制系统基于Java Servlet实现的灾情控制系统 基于Java Servlet实现的灾情控制系统基于Java Servlet实现的灾情...
基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于...
毕设项目:基于Java技术实现的扫雷游戏 毕设项目:基于Java技术实现的扫雷游戏 毕设项目:基于Java技术实现的扫雷游戏 毕设项目:基于Java技术实现的扫雷游戏 毕设项目:基于Java技术实现的扫雷游戏 毕设项目:基于...
基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip基于Java Agent实现的自测联调Mock利器.zip...
基于JAVA实现班主任管理系统(源代码+文档lunwen) 基于JAVA实现班主任管理系统(源代码+文档lunwen) 基于JAVA实现班主任管理系统(源代码+文档lunwen) 基于JAVA实现班主任管理系统(源代码+文档lunwen) 基于JAVA实现班...
java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现实时查询天气功能源代码。基于高德地图实现实时查询天气功能,api二次开发java基于高德地图实现...
基于Java开发实现的自测联调Mock利器工具源码.zip基于Java开发实现的自测联调Mock利器工具源码.zip基于Java开发实现的自测联调Mock利器工具源码.zip基于Java开发实现的自测联调Mock利器工具源码.zip基于Java开发实现...
java毕业设计——基于java出租车计价器设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——基于java出租车计价器设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——基于java出租车计价器设计与...
java实战项目-基于JavaSSM实现在线教育平台系统源码(含教程)-java毕设 技术栈: Java Spring SpringMVC MyBatis 基于Java+Spring+SpringMVC+MyBatis实现的在线教育平台系统源码,包含项目的开发教程,可以作为计算机...
基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战案例 基于Java实现的SSM框架整合实战...
基于Java语言实现的主机入侵检测系统
基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java...
Java毕业设计——基于Java的飞机大战游戏的设计与实现(论文+源代码+讲解视频).zip Java毕业设计——基于Java的飞机大战游戏的设计与实现(论文+源代码+讲解视频).zip Java毕业设计——基于Java的飞机大战游戏的...
抢红包基于Java实现的自动抢红包.zip基于Java实现的自动抢红包.zip基于Java实现的自动抢红包.zip基于Java实现的自动抢红包.zip基于Java实现的自动抢红包.zip基于Java实现的自动抢红包.zip基于Java实现的自动抢红包....
基于java面向对象实现扫雷程序源码 基于java面向对象实现扫雷程序源码 基于java面向对象实现扫雷程序源码 基于java面向对象实现扫雷程序源码 基于java面向对象实现扫雷程序源码 基于java面向对象实现扫雷程序源码 ...
基于java的开发源码-基于Java实现的简单扫雷游戏源码.zip 基于java的开发源码-基于Java实现的简单扫雷游戏源码.zip 基于java的开发源码-基于Java实现的简单扫雷游戏源码.zip 基于java的开发源码-基于Java实现的简单...
基于Java实现的天猫营业执照图片识别完整源码.zip基于Java实现的天猫营业执照图片识别完整源码.zip基于Java实现的天猫营业执照图片识别完整源码.zip基于Java实现的天猫营业执照图片识别完整源码.zip基于Java实现的...
HoneyViewer图片查看器是一个基于java Swing实现的图片查看器,主要实现了图片展示功能。 本实验手册根据需求完成图片读取、切换等功能,平台的全称为:基于java Swing实现的HoneyViewer图片查看器(后简称为: Keep-...
基于Java的板卡及设备查询系统的实现 基于Java的板卡及设备查询系统的实现 基于Java的板卡及设备查询系统的实现 基于Java的板卡及设备查询系统的实现 基于Java的板卡及设备查询系统的实现 基于Java的板卡及设备查询...