隣接テーブルの作成-2つの方法(テンプレート)

1337 ワード

/*
*         
*
*/
#include
#include
int head[100100];//  ,head[i]     i     
int cnt;//      
struct s
{
    int u;//      
    int v;//      
    int w;//      
    int next;//         
}edge[100010];
void add(int u,int v,int w)//           
{
    edge[cnt].u=u;
    edge[cnt].v=v;
    edge[cnt].w=w;
    edge[cnt].next=head[u];
    head[u]=cnt++;
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i;
        cnt=0;
        memset(head,-1,sizeof(head));//      
        for(i=0;i
#include  
#include  
using namespace std;  
  
#define SIZE 1000  
vector >adj(SIZE);  
int n,m;  
void init()  
{  
 scanf("%d%d",&n,&m);   
 int i,j;  
 int a,b;  
 for(i=1;i<=n;i++)  
 {  
  adj[i].clear(); //     
 }  
 for(i=1;i<=m;i++)  
 {  
  scanf("%d%d",&a,&b);  
  adj[a].push_back(b);  
  adj[b].push_back(a);   
 }  
}  
void print()  
{  
 int i;  
 int j;  
   
 for(i=1;i<=n;i++)  
 {  
    
  printf("dian %d:",i);  
  for(j=0;j