Day587.图 -数据结构和算法Java

Posted 阿昌喜欢吃黄桃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day587.图 -数据结构和算法Java相关的知识,希望对你有一定的参考价值。

一、介绍

二、基本概念

三、图的表示方式


四、代码案例

  • 需求

  • 代码实现
package com.achang.graph;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 图结构
 */
public class Graph 
    //存储顶点集合
    private List<String> vertexList;

    //矩阵,存储图结构对应的领接矩阵
    private int[][] edges;

    //表示当前有多少条边
    private int numOfEdges;

    /**
     * 构造器
     *
     * @param n 顶点数量
     */
    public Graph(int n) 
        edges = new int[n][n];
        vertexList = new ArrayList<>(n);
        numOfEdges = 0;
    

    //返回v1和v2的权值
    public int getWeight(int v1,int v2)
        return edges[v1][v2];
    

    //显示矩阵
    public void showVertex()
        for (int[] edge : edges) 
            System.out.println(Arrays.toString(edge));
        
    

    //返回节点i对应的值 0->A
    public String getValueByIndex(int i)
        return vertexList.get(i);
    

    //返回节点的个数
    public int getVertexSize()
        return vertexList.size();
    

    //得到边的数目
    public int getNumOfEdges()
        return numOfEdges;
    


    //插入顶点
    public void addVertex(String vertex) 
        vertexList.add(vertex);
    

    /**
     * 添加边
     * @param v1     表示点的下标及第几个节点 比如ABCDE,A->0 B->1 C->2 D->3 E->4
     * @param v2     如上
     * @param weight 权值 1或者0 默认为0
     */
    public void addEdge(int v1, int v2, int weight) 
        edges[v1][v2] = weight;
        edges[v2][v1] = weight;
        numOfEdges++;
    

    public static void main(String[] args) 
        int n = 5;//节点的个数
        String[] vertexValue  = "A","B","C","D","E";
        Graph graph = new Graph(vertexValue.length);
        //添加节点
        for (String vertex : vertexValue) 
            graph.addVertex(vertex);
        
        //添加边
        graph.addEdge(0,1,1);//AB
        graph.addEdge(0,2,1);//AC
        graph.addEdge(1,2,1);//BC
        graph.addEdge(1,3,1);//BD
        graph.addEdge(1,4,1);//BE
        graph.showVertex();
    



以上是关于Day587.图 -数据结构和算法Java的主要内容,如果未能解决你的问题,请参考以下文章

Inkscape svg彩色图转灰度图

CodeForces 587A

HighCharts 饼图背景色透明

Codeforces Round #587 (Div. 3) B - Shooting

Codeforces Round #587 (Div. 3)

alertmanager+webhook发报警邮件(使用587端口)