Как удалить вершину из графа
У меня есть граф и я его самостоятельно заполняю, и задача заключается в том чтобы удалить вершины, из которых и в которые не идет не один путь. То есть у вершины в ребре и столбце все 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;
}
Если длиннее то вот: Имеется карта городов и посёлков, связанных сетью дорог. Некоторые посёлки связаны лишь с одним населённым пунктом – это окраины. Жители окраин ежегодно переселяются в соседние посёлки и города, после чего посёлки пустеют и удаляются с карты, но при этом могут образоваться новые окраины. В следующем году всё повторяется, если окраины еще остались. Определить, какие города и поселки останутся на карте после того, как исчезнут все окраины.