有向图的邻接矩阵存储顶点删除

假设有向图G采用邻接矩阵存储,要求删除某一个顶点i(包括与其相关连的边)。

输入

第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二个数表示被删除的顶点编号,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。

输出

新的邻接矩阵,第一行表示顶点的个数; 第二行是剩余的结点编号; 接下来是为一个(n-1)*(n-1)大小的整数矩阵。

样例输入

5 2 
0 1 0 1 0 
0 0 1 1 0 
0 0 0 0 0 
0 0 0 0 0 
1 0 0 1 0

样例输出

0134 
0110 
0010 
0000 
1010
#include<iostream>
using namespace std;
int main()
{
    int n;
    int del;
    cin >> n >> del;
    int mat[105][105];
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<n;j++)
        {
            cin >> mat[i][j];
        }
    }
    cout << n-1 << endl;
    for(int i = 0;i<n;i++)
    {
        if(i!=del)
        cout << i;
    }
    cout << endl;
    for(int i = 0;i<n;i++)
    {
        if(i==del)
        continue;
        for(int j = 0;j<n;j++)
        {
            if(j==del)
            continue;
            cout << mat[i][j];
        }
        cout << endl;
     } 
    return 0;
}

阅读更多
版权声明:未经博主允许不能转载文章 https://blog.csdn.net/weixin_42103959/article/details/80696361
上一篇邻接矩阵存储简单路径
下一篇有向图的邻接矩阵存储根计算
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭