算法-数据结构-图的构建(邻接矩阵表示)

ops/2025/2/28 5:13:16/

数据定义


//邻接矩阵表示图
//1.无向图是对称的
//2.有权的把a,到b 对应的位置换成权的值/*** 无向图*    A  B* A  0  1* B  1  0*/
/*** 有向图*    A  B* A  0  1* B  0  0*/import java.util.ArrayList;
import java.util.List;/*** 带权图*    A  B* A  0  1* B  0  0*/
public class GraphM {GraphM(List<Character> vList, int [][] gArr){v=vList;//构造时候顶点个数代表邻接矩阵的长度//邻接矩阵存储边是否联通和权g=gArr;}//顶点private List<Character> v=new ArrayList<>();//边private int[][] g;public List<Character> getV() {return v;}public int[][] getG() {return g;}
}

图的创建

import org.springframework.integration.graph.Graph;import java.util.ArrayList;
import java.util.List;public class GraphTest {//创造一个无向图 边长为6 都联通//顶点为6public static void wuXiangGraphCreat(){List<Character> v1=new ArrayList<>();for(int i=0;i<6;i++){v1.add((char)('A'+i));}int [][] g1=new int[v1.size()][v1.size()];for(int i=0;i<v1.size();i++){for(int j=0;j<v1.size();j++){if(i!=j){//不是对称轴上都是1g1[i][j]=1;}else {//对称轴都是0g1[i][j]=0;}}}GraphM wuXiangGraph=new GraphM(v1,g1);//打印校验//顶点System.out.println(wuXiangGraph.getV());//边for(int i= 0;i<v1.size();i++){for(int j=0;j<v1.size();j++){System.out.print(wuXiangGraph.getG()[i][j]);System.out.print(" ");}System.out.println();}}//有向图//创造一个有向图 边长为6 A-B B-C C-D D_E E-F//顶点为6public static void youXiangGraphCreat(){List<Character> v1=new ArrayList<>();for(int i=0;i<6;i++){v1.add((char)('A'+i));}int [][] g1=new int[v1.size()][v1.size()];for(int i=0;i<v1.size();i++){for(int j=0;j<v1.size();j++){if(i==0&&j==1||i==1&&j==2||i==2&&j==3|| i==3&&j==4||i==4&&j==5||i==5&&j==0){//边长为6 A-B B-C C-D D_E E-Fg1[i][j]=1;}else {//其余都是0g1[i][j]=0;}}}GraphM wuXiangGraph=new GraphM(v1,g1);//打印校验//顶点System.out.println(wuXiangGraph.getV());//边for(int i= 0;i<v1.size();i++){for(int j=0;j<v1.size();j++){System.out.print(wuXiangGraph.getG()[i][j]);System.out.print(" ");}System.out.println();}}//有向图带权,权每到下一条边加10//创造一个有向图 边长为6 A-B B-C C-D D_E E-Fpublic static void youXiangGraphQuCreat(){List<Character> v1=new ArrayList<>();for(int i=0;i<6;i++){v1.add((char)('A'+i));}int [][] g1=new int[v1.size()][v1.size()];//权int tem=0;for(int i=0;i<v1.size();i++){for(int j=0;j<v1.size();j++){if(i==0&&j==1||i==1&&j==2||i==2&&j==3|| i==3&&j==4||i==4&&j==5||i==5&&j==0){//边长为6 A-B B-C C-D D_E E-Fg1[i][j]=1+tem;tem+=10;}else {//其余都是0g1[i][j]=0;}}}GraphM wuXiangGraph=new GraphM(v1,g1);//打印校验//顶点System.out.println(wuXiangGraph.getV());//边for(int i= 0;i<v1.size();i++){for(int j=0;j<v1.size();j++){System.out.print(wuXiangGraph.getG()[i][j]);System.out.print(" ");}System.out.println();}}public static void main(String[] args) {//无向图wuXiangGraphCreat();youXiangGraphCreat();youXiangGraphQuCreat();}}

结果打印


http://www.ppmy.cn/ops/161861.html

相关文章

监督学习——基于线性回归的波士顿房价预测:理论、实践与评估

基于线性回归的波士顿房价预测:理论、实践与评估 文章目录 基于线性回归的波士顿房价预测:理论、实践与评估一、引言二、线性回归基础理论2.1 线性回归原理2.2 线性回归在房价预测中的应用逻辑三、波士顿房价数据集介绍3.1 数据集概述3.2 特征说明3.3 目标变量四、波士顿房价…

SQL笔记#复杂查询

一、视图 1、视图和表 使用试图时会执行SELECT语句并创建一张临时表。视图中保存的是SELECT语句;表中保存的是实际数据。 2、创建视图的方法 CREATE VIEW 视图名称(<视图列名1>,<视图列名2>,……) AS <SELECT语句> CREATE VIEW ProductSum (prod…

PYQT学习笔记-从简单窗口到多功能主窗口的实现

PyQt5学习笔记&#xff1a;从简单窗口到多功能主窗口的实现 1. 环境准备2. 创建第一个PyQt窗口2.1 代码实现2.2 代码解析2.2.1 创建应用程序2.2.2 创建窗口2.2.3 创建布局2.2.4 添加复选框和按钮2.2.5 信号与槽2.2.6 显示窗口 3. 关键点解释3.1 arg 是什么&#xff1f;3.2 lamb…

基于FD-MIMO技术的雷达通信一体化系统波形设计matlab模拟与仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) FD-MIMO雷达相比传统MIMO雷达具有更好的检测性能&#xff0c;能区分相同角度不同距离的目标。 2.算法运行软件版本 mat…

HTTPS

什么是HTTPS HTTPS是基于HTTP套了一个加密层(SSL),HTTP是明文传输,并不安全. 不知道各位在网上下载中有没有遇到这种情况,本来我们要下载一个音乐软件,但是弹出的下载链接下载的却是某个浏览器.很让人头麻.还有某数字安全卫士,也是遍布了我们网络.稍有不慎,全家桶就给你安排上…

微软推出Office免费版,限制诸多,只能编辑不能保存到本地

易采游戏网2月25日独家消息&#xff1a;微软宣布推出一款免费的Office版本&#xff0c;允许用户进行基础文档编辑操作&#xff0c;但限制颇多&#xff0c;其中最引人关注的是用户无法将文件保存到本地。这一举措引发了广泛讨论&#xff0c;业界人士对其背后的商业策略和用户体验…

轻松搭建:使用Anaconda创建虚拟环境并在PyCharm中配置

一、使用Anaconda创建虚拟环境 1. 安装Anaconda 2..conda常用的命令 3. 创建虚拟环境-以搭建MachineVision为例 4. 激活虚拟环境 5. 安装依赖包 二、PyCharm配置环境 在进行Python项目开发时&#xff0c;合理的环境管理是必不可少的&#xff0c;特别是当你在多个项目中…

双系统装多了,想要删除引导菜单上的选项?这个简单

前言 这几天一直在讲Windows双系统的方法&#xff0c;肯定有很多小伙伴已经通过双系统的方法成功安装了各种Windows版本的双系统。 各种双系统的方案&#xff08;点我跳转&#xff09; 但是双系统装多了之后&#xff0c;在开机引导菜单就会出现很多很多个系统选项&#xff0…