그림 의 인접 표
1942 단어 데이터 구조 학습 기록
#include
#include
#include
using namespace std;
#define Maxn 100
struct ARCnode //
{
int adjvex; //
ARCnode *next; //
};
struct Vnode //
{
int data; //
ARCnode *head1; //
ARCnode *head2; //
};
struct LGraph
{
Vnode point[Maxn]; //
int vexnum,arcnum; // ( )
};
LGraph lg;
void CreatLg() // G
{
ARCnode *pi; //
int v1,v2; //
for(int i=0;i<=lg.vexnum;i++) //
lg.point[i].head1=lg.point[i].head2=NULL;
for(int i=0;i<=lg.arcnum;i++)
{
scanf("%d%d",&v1,&v2);//
v1--;v2--;
pi=new ARCnode;//
pi->adjvex=v2;
pi->next=lg.point[v1].head1; //
lg.point[v1].head1=pi;
pi=new ARCnode;
pi->adjvex=v1;
pi->next=lg.point[v2].head2; //
lg.point[v2].head2=pi;
}
}
//
void DeleteLG()
{
ARCnode *pi;
for(int i=0;inext;
delete pi;
pi=lg.point[i].head1;
}
while(pi!=NULL)// i
{
lg.point[i].head2=pi->next;
delete pi;
pi=lg.point[i].head2;
}
}
}
int main()
{
ARCnode *pi;
while(1)
{
lg.arcnum=lg.vexnum=0;
scanf("%d%d",&lg.vexnum,&lg.arcnum);
if(lg.vexnum==0)
break;
CreatLg();
for(int i=0;inext;
}
if(i==0)
printf("%d",od);
else
printf(" %d",od);
}
printf( "
" );
for(int i=0;inext;
}
if(i==0)
printf("%d",od);
else
printf(" %d",od);
}
printf( "
" );
DeleteLG();
}
}
배열 로 인접 표를 시 뮬 레이 션 합 니 다:https://blog.csdn.net/major_zhang/article/details/52155279