基于邻接矩阵的新边的增加
#include <iostream>
#include <climits>
using namespace std;
#define maxsize 100
typedef struct{
int vex[maxsize];
int matrix[maxsize][maxsize];
int vexnum;
int arcnum;
}MGraph;
void Create(MGraph &G,int n,int m){
G.vexnum = n;
for(int i = 1;i<=n;i++){
G.vex[i] = i;
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
G.matrix[i][j] = 0;
}
}
for(int i = 1;i<=m;i++){
int n1;int n2;
cin>>n1>>n2;
G.matrix[n1][n2] = 1;
G.matrix[n2][n1] = 1;
}
int nn1;int nn2;
cin>>nn1>>nn2;
G.matrix[nn1][nn2] = 1;
G.matrix[nn2][nn1] = 1;
G.arcnum = m+1;
}
void print(MGraph G){
cout<<"0";
for(int i = 1;i<=G.vexnum;i++){
cout<<" "<<G.vex[i];
}
cout<<endl;
for(int i = 1;i<=G.vexnum;i++){
cout<<G.vex[i];
for(int j = 1;j<=G.vexnum;j++){
cout<<" "<<G.matrix[i][j];
}
cout<<endl;
}
}
int main(){
int n,m;
while(cin>>n>>m && (n!=0 && m!=0)){
MGraph G;
Create(G,n,m);
print(G);
}
}