Как удалить вершину из графа

У меня есть граф и я его самостоятельно заполняю, и задача заключается в том чтобы удалить вершины, из которых и в которые не идет не один путь. То есть у вершины в ребре и столбце все 0. Если не сложно можете отредактировать код или же написать с нуля, идей по реализации нет.

#include "iostream"
#include "locale.h"

using namespace std;

int main()
{
    int n, m, x, y, a[80][80];
    setlocale(LC_ALL, "rus");
    cout << "Введите количество вершин: ";
    cin >> n;
    cout << "Введите количество рёбер: ";
    cin>> m;
    
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            a[i][j]=0;
        }
        cout << endl;
    
    cout << "Введите рёбра: " << endl;
    for(int i=1;i<=m;i++)
    {
        cin >> x >> y;
        a[x][y]=1;
        a[y][x]=1;
    }
    cout << endl;
    
    
    cout << "Матрица смежности: " << endl;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
   getchar();
    return 0;
}

Если длиннее то вот: Имеется карта городов и посёлков, связанных сетью дорог. Некоторые посёлки связаны лишь с одним населённым пунктом – это окраины. Жители окраин ежегодно переселяются в соседние посёлки и города, после чего посёлки пустеют и удаляются с карты, но при этом могут образоваться новые окраины. В следующем году всё повторяется, если окраины еще остались. Определить, какие города и поселки останутся на карте после того, как исчезнут все окраины.


Ответы (0 шт):