算法-数据结构-图的构建(邻接矩阵表示)
数据定义
//邻接矩阵表示图
//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();}}
结果打印

相关文章:
算法-数据结构-图的构建(邻接矩阵表示)
数据定义 //邻接矩阵表示图 //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*/ p…...
ARCGIS国土超级工具集1.4更新说明
ARCGIS国土超级工具集V1.4版本,功能已增加至54 个。本次更新在V1.3版本的基础上,新增了“拓扑问题修复工具”并同时调整了数据处理工具栏的布局、工具操作界面的选择图层下拉框新增可选择位于图层组内的要素图层功能、数据保存路径新增了可选择数据库内的…...
Ollama+Cherrystudio+beg-m3+Deepseek R1 32b部署本地私人知识库(2025年2月win11版)
之前综合网络各方面信息得到的配置表: 在信息爆炸的时代,数据安全和个性化需求愈发凸显。搭建本地私人知识库,不仅能确保数据的安全性,还能根据个人需求进行个性化定制,实现知识的高效管理和利用。随着技术的不断发展…...
Websocket、WebRTC在大模型中的应用
文章目录 WebSocket简介Websocket流程图使用场景代码示例 WebRTC简介WebRTC(Web Real-Time Communication)流程图使用场景代码示例 大模型应用,使得 WebSocket, WebRTC 的使用频率越来越高,WebSocket提供了文本输入与大…...
C++ 顺序容器--vector容器详解
元素保存在连续的内存空间中。插入元素或者删除元素通常需要线性时间,当这些操作在尾部执行时,实际运行时间为摊还常量时间。随机访问某个元素的复杂度为常量时间。 1 vector 概述 vector 在<vector>头文件中被定义为一个带有2个类型参数的类模板…...
用Golang与WebAssembly构建高性能Web应用:详解`syscall/js`包
用Golang与WebAssembly构建高性能Web应用:详解syscall/js包 引言为什么选择syscall/js包?适用场景 syscall/js包概述syscall/js包的核心概念1. js.Global2. js.Value3. js.Func4. js.Null 和 js.Undefined syscall/js包在WebAssembly中的位置 环境配置与…...
LeetCode刷题 -- 23. 合并 K 个升序链表
小根堆排序与合并 K 个有序链表的实现 1. 介绍 本技术文档详细介绍了如何使用 小根堆(Min Heap) 实现 K 个有序链表的合并。 核心思想是: 使用 小根堆 维护当前最小的节点。每次取出堆顶元素(最小值)加入合并链表&…...
【每日八股】计算机网络篇(一):概述
OSI 的 7 层网络模型? OSI(Open Systems Interconnection,开放互联系统)是由国际标准化组织(ISO)提出的一种网络通信模型。 自上而下,OSI 可以被分为七层,分别是:应用层…...
业务应用和大数据平台的数据流向
概述 业务应用与大数据平台之间的交互是实现数据驱动决策和实时业务处理的关键环节。其交互方式多样,协议选择取决于数据流向、实时性要求及技术架构。一句话总结,数据流向可以是从业务应用写入大数据平台,也可以是大数据平台回写至业务应用…...
C语言中的文件和文件操作
文件操作 一、文件的打开和关闭二、文件的顺序读写fgetc和fputcfgets和fputsfscanf和fprintfsscanf和sprintffread和fwrite 三、文件的随机读写1.fseek2.ftell3.rewind 四、补充1.文件读取结束的判定2.文件缓冲区 一、文件的打开和关闭 流和标准流 流:想象为流淌着…...
插入排序:一种简单而直观的排序算法
大家好!今天我们来聊聊一个简单却非常经典的排序算法——插入排序(Insertion Sort)。在所有的排序算法中,插入排序是最直观的一个。 一、插入排序的基本思想 插入排序的核心思想是:将一个待排序的元素,插…...
2.24力扣每日一题--设计有序流
1656. 设计有序流 - 力扣(LeetCode) (设计一个可以存储n个字符串的数据结构,其中满足存在一个”指针“,用以展示当下是否还存在空间存储,每个字符串有自己ID需要存储) 数据结构: 字…...
本地Oracle数据库复制数据到Apache Hive的Linux服务器集群的分步流程
我们已经有安装Apache Hive的Linux服务器集群,它可以连接到一个Oracle RDS数据库,需要在该Linux服务器上安装配置sqoop,然后将Oracle RDS数据库中所有的表数据复制到Hive。 为了将本地Oracle数据库中的所有表数据复制到Apache Hive Linux服务…...
【R语言】ggplot2绘图常用操作
目录 坐标轴以及标签的相关主题 图例调整 字体类型设置 颜色相关 ggplot2如何添加带箭头的坐标轴? 标题相关主题调整 修改点图中点的大小 如何使得点的大小根据变量取值的大小来改变? 柱状图和条形图 坐标轴以及标签的相关主题 theme( # 增大X…...
正态分布的奇妙性质:为什么奇数阶中心矩(odd central moments)为零?
正态分布的奇妙性质:为什么奇数阶矩为零? 正态分布(Normal Distribution)是统计学中最常见的分布之一,它的钟形曲线几乎无处不在,从身高体重到测量误差,都能看到它的影子。除了均值和方差这两个…...
架构——Nginx功能、职责、原理、配置示例、应用场景
以下是关于 Nginx 的功能、职责、原理、配置示例、应用场景及其高性能原因的详细说明: 一、Nginx 的核心功能 1. 静态资源服务 功能:直接返回静态文件(如 HTML、CSS、JS、图片、视频等)。配置示例:server {listen 80…...
涉密载体管控系统革新:RFID技术引领,信息安全新境界
行业背景 文件载体管控系统DW-S402是用于对各种SM载体进行有效管理的智能柜(智能管理系统),实现对载体的智能化、规范化、标准化管理,广泛应用于保密、机要单位以及企事业单位等有载体保管需求的行业。 随着信息化技术发展&…...
基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现
大家好,今天要和大家聊的是一款基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于 SpringBoot 的 “电影交流平台小程序” 系统设计与实现的主要使用者分为 管理员 和…...
【Rust中级教程】2.9. API设计原则之显然性(obvious) :文档与类型系统、语义化类型、使用“零大小”类型
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 2.9.1. 文档与类型系统 用户可能不会完全理解API的所有规则和限制。所以你写的API应该让你…...
git branch
文章目录 1.简介2.格式3.选项4.示例参考文献 1.简介 git branch 用于管理分支,包括查看、创建、删除、重命名和关联。 git branch 是 Git 版本控制系统中用于管理分支的命令。分支是 Git 的核心功能之一,允许开发者在同一个代码库中并行开发不同的功能…...
【网络编程】广播和组播
数据包发送方式只有一个接受方,称为单播。如果同时发给局域网中的所有主机,称为广播。只有用户数据报(使用UDP协议)套接字才能广播: 广播地址以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广…...
运维Crontab面试题及参考答案
Crontab 文件的六个域分别是什么?顺序如何? Crontab 文件用于设置定时执行任务,其六个域及顺序从左到右依次为:分钟(Minute)、小时(Hour)、日期(Day of month)…...
Lecture 1 - AI Systems (Overview)
一、Machine Learning Approach标准机器学习流程 • Train ML algorithm(训练机器学习算法):基于收集的数据训练机器学习模型。 二、Machine Learning for Adaptation(适应性机器学习) 加入了数据更新和自动化的部分…...
Ansible 学习笔记
这里写自定义目录标题 基本架构文件结构安装查看版本 Ansible 配置相关文件主机清单写法 基本架构 Ansible 是基于Python实现的,默认使用22端口, 文件结构 安装 查看用什么语言写的用一下命令 查看版本 Ansible 配置相关文件 主机清单写法...
设计模式-结构型-代理模式
1. 代理模式概述 代理模式(Proxy Pattern) 是一种结构型设计模式,它允许通过代理对象来控制对目标对象的访问。代理模式主要用于以下场景: 控制对象访问:限制某些对象的访问权限,例如权限控制。 延迟实例…...
FCC CE SRRC MIC是什么意思?
1.FCC CE SRRC MIC是什么意思? 2.4000 GHz 至 2.4835 GHz:<33 dBm(FCC),<20 dBm(CE/SRRC/MIC) 5.150 GHz 至 5.250 GHz(CE:5.170 GHz 至 5.250 GHz)&a…...
springboot005学生心理咨询评估系统(源码+数据库+文档)
源码地址:学生心理咨询评估系统 文章目录 1.项目简介2.部分数据库结构与测试用例3.系统功能结构4.包含的文件列表(含论文)后台运行截图 1.项目简介 使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了,把现…...
Apache Doris:一款高性能的实时数据仓库
Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 既能支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。 Apache Doris 最初是百度广告报表业务…...
使用Vue-Flow创建一个流程图可视化节点坐标查询器
在开发中遇到这样一个需求,需要后端返回数据前端网页生成流程图,由于流程图使用了Vue-Flow,所以需要坐标来辅助后端生成数据。 首先引入方法并定义添加节点数据 const { updateEdge, addEdges, addNodes} useVueFlow() const add_nodes …...
面试基础--Java 集合框架详解
Java 集合框架详解:从 ArrayList 到 HashMap 的底层原理 引言 在 Java 开发中,集合框架(Collection Framework)是处理数据存储和操作的核心工具。无论是日常开发还是大厂面试,对集合框架的理解都是考察的重点之一。本…...
