栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

采用邻接矩阵表示法创建无向图-Java代码实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

采用邻接矩阵表示法创建无向图-Java代码实现

实现步骤

1、首先定义两个全局变量一维数组vextex和二维数组arcs,vextex用来保存所有的顶点,arcs表示邻接矩阵,private String[] vextex;private int[][] arcs;
2、由方法**LocateVertex(String value)**找到value在图中的位置,即value在一维数组vextex中的序号。
3、在插入方法中传入两个顶点和相应的权值insertUDN(String v1,String v2,int weight),在方法中调用LocateVertex(String value)则能得到两个顶点在图中的位置。

代码
package com.liwei.datastruct;


import java.lang.reflect.Array;
import java.util.Arrays;

//创建一个无向网
public class CreateUDN {

    private String[] vextex; //保存所有的顶点

    private int[][] arcs; // 生成的无向网保存在二维数组中


    public static void main(String[] args) {

        String[] vextex = {"A","B","C","D","E"};

        CreateUDN createUDN = new CreateUDN(5,vextex);

        createUDN.insertUDN("A","B",1);
        createUDN.insertUDN("A","C",1);
        createUDN.insertUDN("B","C",1);
        createUDN.insertUDN("B","D",1);
        createUDN.insertUDN("B","E",1);
        createUDN.Show();


    }


    //初始化 n为顶点个数, vextex为传入顶点向量
    public CreateUDN(int n,String[] vextex){
        arcs = new int[n][n];
        this.vextex=vextex;
    }

    // 将两个顶点和弧插入对应的图中
    public int[][] insertUDN(String v1,String v2,int weight){
        //分别找出v1,v2在图中对应的位置
        int M = LocateVertex(v1);
        int N = LocateVertex(v2);
        
        //由于是无向图,则双向赋相同值,如果的有向图则是单向
        arcs[M][N] = weight;
        arcs[N][M] = weight;
        return arcs;
    }

    //找到当前两个顶点和弧的位置
    public  int LocateVertex(String value){
        int vexnum = vextex.length;
        int i = 0;
        for (int j = 0; j  
测试数据 

输出结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号