首页 > 其他分享 >图的创建以及一些简单方法

图的创建以及一些简单方法

时间:2022-10-11 16:31:37浏览次数:36  
标签:int 创建 void edges static 简单 方法 public insertEdge


代码

public class Main {
//用集合存储各个顶点
static ArrayList<String> vertexList;
//用二维数组存储各个边(邻接矩阵)
static int[][] edges;
//保存边的数目
static int numOfEdges = 0;

public static void main(String[] args) {
String[] vertexs = {"A","B","C","D","E"};

createGraph(5);

for (int i = 0;i < vertexs.length;i++){
insertVertex(vertexs[i]);
}

insertEdge(0,1,1);
insertEdge(0,2,1);
insertEdge(1,2,1);
insertEdge(1,3,1);
insertEdge(1,4,1);
show();
}

//初始化图
public static void createGraph(int edgeNums){
vertexList = new ArrayList<String>();
edges = new int[edgeNums][edgeNums];
numOfEdges = edgeNums;
}

//添加顶点
public static void insertVertex(String oneVertex){
vertexList.add(oneVertex);
}

//添加边
public static void insertEdge(int v1,int v2,int weight){
edges[v1][v2] = weight;
edges[v2][v1] = weight;
numOfEdges++;
}

//返回节点的数目
public static int getNumOfVertex(){
return vertexList.size();
}

//返回边的数目
public static int getNumOfEdges(){
return numOfEdges;
}

//返回下标为i的点的数据
public static String getValueByIndex(int index){
return vertexList.get(index);
}

//返回某一边的权值
public static int getWeightByV1V2(int v1,int v2){
return edges[v1][v2];
}

public static void show(){
for (int[] temp: edges){
System.out.println(Arrays.toString(temp));
}
}
}

结果

[0, 1, 1, 0, 0]
[1, 0, 1, 1, 1]
[1, 1, 0, 0, 0]
[0, 1, 0, 0, 0]
[0, 1, 0, 0, 0]


标签:int,创建,void,edges,static,简单,方法,public,insertEdge
From: https://blog.51cto.com/u_15824619/5746643

相关文章

  • 工厂方法在Spring源码中的运用
    我们都知道Spring中IOC是使用的工厂模式,但是对于实现细节就一知半解了,今天这篇文章就带大家解读Spring中是如何使用工厂模式的。在上篇文章中我们懂了什么是工厂模式,这篇文......
  • 09-Go设计模式-模板方法模式
    模板方法模式示例代码/*模板方法模式模板方法模式中的角色和职责AbstractClass(抽象类):在抽象类中定义了一系列基本操作(PrimitiveOperations),这些基本操作可以是具体......
  • docker简单运行centos7
    1.下载centos镜像dockerpullcentos:7.9.20092.后台启动容器dockerrun-d--name=centos7--privilegedcentos:7.9.2009/usr/sbin/init3.进入centos7容器中d......
  • eclipse 创建自己的Maven项目(超详细)
    本文章主要是讲解是讲解eclipse创建项目--SpiritMark_liu先配置Maven的settings地址(Window—>Perferences–>Maven)点击Browse选择自己地址一、创建......
  • PyPackage01---Pandas10_apply方法使用
    Intro  R里面apply族函数很强大,原来以为python的是阉割版,没想到也很强大,还是需要多看看文档。。。相关环境和package信息:importsysimportpandasaspdimportnumpyas......
  • DNF虚拟机过检测VMP SE TP 虚拟机无法登陆登陆终于找到解决方法
    当我们使用虚拟机玩DNF时无法进行游戏,那么就要使用以下代码第一步找到虚拟机的VMX文件使用记事本方式打开它,在它的尾部加入monitor_control.enable_fullcpuid=TRUEcpu......
  • 工厂方法在Spring源码中的运用
    我们都知道Spring中IOC是使用的工厂模式,但是对于实现细节就一知半解了,今天这篇文章就带大家解读Spring中是如何使用工厂模式的。在上篇文章中我们懂了什么是工厂模式,这篇......
  • 【框架】IDEA创建SSM框架流程
    创建模块添加全新模块使用模板创建,选择webapp,之后next框架信息→next→finish框架完整化打开创建好的框架,再选择结构点击OK导入jar包以及对应坐标参考:<?x......
  • 路由的配置和简单使用
     1、路由添加命令:pnpminstallvue-router@next--save  //@next表示最新 安装成功后dependencies里会出现路由的版本 "vue-router":"^4.0.13"如果项目正在......
  • 太牛逼了!用 Python 实现抖音上的“人像动漫化”特效,原来这么简单!
    关注微信公众号『数据分析与统计学之美』,后台回复"人像动漫画"获取本文完整代码和素材。前今天,女友拉着我和她玩儿抖音,就是这个​​人像动漫化​​的操作,顿时觉得很好玩儿......