邻接矩阵的使用

邻接矩阵的使用一、介绍二、代码

大家好,又见面了,我是你们的朋友全栈君。

一、介绍

  • 什么是邻接矩阵呢?所谓邻接矩阵存储结构就每个顶点用一个一维数组存储边的信息,这样所有点合起来就是用矩阵表示图中各顶点之间的邻接关系。所谓矩阵其实就是二维数组。

  • 对于有 n个顶点的图 G=(V,E) 来说,我们可以用一个 n×n 的矩阵 A来表示 G 中各顶点的相邻关系,如果 vi和 vj​ 之间存在边(或弧),则 A[i][j]=1,否则 A[i][j]=0=0。下图为有向图 G 对应的邻接矩阵:
    在这里插入图片描述—- 在这里插入图片描述

二、不带权图

4 5
1 2
1 3
1 4
2 4
4 3

有向图:

#include <cstdio>
const int N = 1005;
int g[N][N];
int main() { 
   
	int n, m; //n个点 m条边 
	scanf("%d%d", &n, &m);
	int u, v; //表示2个点u--->v 
	for (int i = 0; i < m; i++) { 
   
		scanf("%d%d", &u, &v);
		g[u][v] = 1;//有向图 u-->v 
	} 
	//输出
	for (int i = 1; i <= n; i++) { 
   
		for (int j = 1; j <= n; j++) { 
   
			printf("%d", g[i][j]);
		}
		printf("\n");
	} 
	return 0;
} 

无向图:

#include <cstdio>
const int N = 1005;
int g[N][N];
int main() { 
   
	int n, m; //n个点 m条边 
	scanf("%d%d", &n, &m);
	int u, v; //表示2个点u--->v 
	for (int i = 0; i < m; i++) { 
   
		scanf("%d%d", &u, &v);
		//无向图 
		g[u][v] = 1; 
		g[v][u] = 1; 
	} 
	//输出
	for (int i = 1; i <= n; i++) { 
   
		for (int j = 1; j <= n; j++) { 
   
			printf("%d", g[i][j]);
		}
		printf("\n");
	} 
	return 0;
} 

三、带权图

在这里插入图片描述

#include <cstdio>
const int N = 1005;
int g[N][N];
int main() { 
   
	int n, m; //n个点 m条边 
	scanf("%d%d", &n, &m);
	int u, v, w; //表示2个点u--->v w代表权值 
	for (int i = 0; i < m; i++) { 
   
		scanf("%d%d%d", &u, &v, &w);
		//有向图 
		g[u][v] = w; 
	} 
	//输出
	for (int i = 1; i <= n; i++) { 
   
		for (int j = 1; j <= n; j++) { 
   
			printf("%d ", g[i][j]);
		}
		printf("\n");
	} 
	return 0;
} 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146503.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hybrid华为配置不同交换机,相同vlan 之间互通

    hybrid华为配置不同交换机,相同vlan 之间互通

    2022年3月12日
    223
  • 隐式转换函数_隐函数可以转化为显函数

    隐式转换函数_隐函数可以转化为显函数隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型objectDemo1Main{defmain(args:Array[String]):Unit={valnum:Int=f1(3.5);valnum1:Int=3.5;print(num)}implic…

    2022年8月31日
    3
  • stm32h7串口dma发送_串口通信流程

    stm32h7串口dma发送_串口通信流程我们知道DM368有两个串口,UART0和UART1。但是UART0默认为调试串口,也就是说一般不用这个作为通信串口,此刻UART1就成为了DM368和上位机通信的唯一选择。官方文档表明,UART0和UART1都已经配置好了,并且不需要修改任何代码就可以直接使用,但是实际操作过程中,保证通信程序完全没有问题的情况下,并不能完成通信。这就让我不得不怀疑,UART1是不是确确实实的使能了?到底是可

    2022年8月13日
    5
  • 我的工程师进阶之路 – 2022更新[通俗易懂]

    我的工程师进阶之路 – 2022更新[通俗易懂]我补充了时间轴,从进入大学,不知不觉8年就这样匆匆而过,与其感叹我更想抓紧之后的时间,不知道接下来能经历些什么。

    2022年7月22日
    12
  • pycharm无法安装第三方模块_如何在pycharm中安装第三方库

    pycharm无法安装第三方模块_如何在pycharm中安装第三方库使用pytharm安装python的第三方库很方便,但常常也会报错,下面归纳一些常见的问题。1.pip版本太老这应该是最常见的问题了,解决办法就是更新pip版本,升级命令如下:python-mpipinstall–upgradepip查看pip版本命令如下:pip-V2.更换源镜像pycharm默认的安装源网址是https://pypi.python….

    2022年8月26日
    7
  • centos 删除软链接(centos软路由)

    添加软连接软连接,为某一个文件在另外一个位置建立一个同步的连接在此处创建软连接后,访问到此处的软连接,就会定位到软连接指向的位置。相当于把一个文件夹放到了多个位置,但其实还是只有一份,并不是复制。具体用法是:ln-s源文件目标文件会针对源文件创建一个软连接(目标文件),链接到源文件。别搞反了。前面的源文件,是需要在当前位置能访问到的文件。后面的是目标文件,是新创建出来的链接。例…

    2022年4月14日
    254

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号