C++之无向图3

#include <iostream>


using namespace std;


int G[10][10]={ {0,1,0,1,0},
       {1,0,1,0,1},
       {0,1,0,1,1},
       {1,0,1,0,0},
       {0,1,1,0,0}, };


int vexnum=5;


void show()
{
for(int i=0;i<vexnum;i++)
{
for(int j=0;j<vexnum;j++)
cout<<G[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}


int arcnum()
{
int n=0;
for(int i=0;i<vexnum;i++)
{
for(int j=0;j<i;j++)
if(G[i][j])
n++;
}
return n;
}


void addVex() //增加顶点 
{
vexnum++;
}


void addArc(int v,int w) //增加边 
{
int i=v-1;
int j=w-1;
G[i][j]=G[j][i]=1;
}


void cutArc(int v,int w) //删除边 
{
int i=v-1;
int j=w-1;
G[i][j]=G[j][i]=0;
}


void cutVex(int v) //删除一个顶点 
{
for(int i=0;i<vexnum;i++)
{
for(int j=v-1;j<vexnum;j++)
G[i][j]=G[i][j+1];
}
for(int i=v-1;i<vexnum;i++)
{
for(int j=0;j<vexnum;j++)
G[i][j]=G[i+1][j];
}
vexnum--;
}


int main()
{
show();
cout<<"arcnum="<<arcnum()<<endl;

addVex();
addArc(4,vexnum);
show();
cout<<"arcnum="<<arcnum()<<endl;

cutArc(2,3);
show();
cout<<"arcnum="<<arcnum()<<endl;

cutVex(1);
show();
cout<<"arcnum="<<arcnum()<<endl;

return 0;
}

猜你喜欢

转载自blog.csdn.net/wrc_nb/article/details/80551273