邻接矩阵的使用

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

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

一、介绍

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

  • 对于有 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 进程间通信和线程间通信的区别_有些线程包含多个进程

    进程间通信和线程间通信的区别_有些线程包含多个进程进程间通信转自https://www.cnblogs.com/LUO77/p/5816326.html线程间通信https://www.cnblogs.com/jobs1/p/10784021.html线程间通信进程和线程的区别程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映…

    2022年10月7日
    3
  • ANT下载与安装–windows

    ANT下载与安装–windows1.下载地址http://ant.apache.org/bindownload.cgi;2.版本信息1.10.2 .zip archive对应jdk81.9.10&#16

    2022年7月4日
    23
  • 官网下载Java连接MySql驱动jar包

    官网下载Java连接MySql驱动jar包官网地址:http://dev.mysql.com/downloads/connector/1.选择下载驱动2.选择下载3.可以不登录直接下载4.下载下来的是zip压缩包,解压之后,文件夹中有Java连接MySql的驱动jar包转载于:https://www.cnblogs.com/it-mh/p/11205866.html…

    2022年5月21日
    34
  • web渗透测试学习路线[通俗易懂]

    web渗透测试学习路线[通俗易懂]web渗透学习路线文章目录*web渗透学习路线*前言一、web渗透测试是什么?二、web渗透步骤1.前期工作2.中期提高后期打牢总结前言本文整理的学习路线,清晰明了,重点分明,能快速上手实践,相信想学的同学们都能轻松学完。都是干货啦,先收藏⭐再看吧。本文偏基础能让萌新们快速摸到渗透测试的门道,少走弯路,也能让正在学习的小伙伴们查漏补缺,也欢迎大佬们在评论区指正错误~这里附上我之前学习的路线图提示:以下是本篇文章正文内容,下面案例可供参考一、web渗透测试是什么?Web渗透测试分为白盒测

    2022年6月23日
    33
  • 菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]

    菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]进度条的自绘,关键的是用GetWindowLong得到一个进度条的结构:.版本2.数据类型进度条结构   .成员hWnd,整数型,,,进度条窗口句柄   .成员dwStyle,整数型,,,进度条窗口样式   .成员iMin,整数型,,,最小最大进度   .成员iMax,整数型,,,当前进度值

    2022年7月13日
    16
  • css基础教程学习

    css基础教程学习1.CSS概述CSS指层叠样式表(CascadingStyleSheets)样式定义如何显示HTML元素样式通常存储在样式表中把样式添加到HTML4.0中,是为了解决内容与

    2022年8月3日
    5

发表回复

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

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