输出有向图邻接矩阵

3 篇文章 1 订阅

【问题描述】设存在有向图G,输入顶点数n,边数为m,输入边信息,输出其对应的邻接矩阵。

【输入形式】首先输入顶点个数n(小于10),顶点名称依次为0至n-1;输入边数m;输入顶点之间的边(两个顶点之间用空格隔开)。

【输出形式】输出生成的二维矩阵。

【样例输入】

4

6

0 2

0 3

1 2

1 0

2 3

3 1

【样例输出】

0 0 1 1

1 0 1 0

0 0 0 1

0 1 0 0

Tips:注意到输入的遍没有按照二位矩阵双循环的方式判断,故选择输入一次边,调用一次遍历

#include<cstdio>
#include<iostream>
using namespace std;
int a[10][10] = { 0 };

int main(){
	int n ,m;
	int i ,j;
	cin >> n;
	cin>> m;			//输入点数 和 边数
	int p, q;
	
	for (int k = 0; k < m; k++)       // 有m条边 需要输入(判断)m次边数     
	{
		cin >> p >> q;                
		for (i = 0; i < n; i++)       
     //输入的边和矩阵顺序无关 需要输入一次边信息 调用一次双循环遍历
		{
			for (j = 0; j < n; j++)
			{

				if (p == i && q == j)  
					a[i][j] = 1;       //若找到 则赋值为1
			}
		}
		
	}
	for (i = 0; i < n; i++)            //输出矩阵 
	{
		for (j = 0; j < n; j++)
		{
			cout << a[i][j] << " ";
		}
		cout << endl;
	}



	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值