⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2485566_re.cc

📁 做的POJ的一些题目
💻 CC
字号:
#include<iostream>
#include<malloc.h> 
using namespace std;
bool visit[100];
int counts;
typedef struct enode
{
   int adj;
   struct enode *next;        
}enode;
typedef struct vnode
{
    enode *find;
}vnode;
typedef vnode List[100];
typedef struct graphic
{
    List list;
    int n,e;       
}graphic;
void create(graphic *g)
{
    cin>>g->n;
    cin>>g->e;    
    for(int i=1;i<=g->n;i++)
    {
        g->list[i].find=NULL;       
    }
    for(int i=1;i<=g->e;i++)
    {
        enode *p;
        p=(enode *)malloc(sizeof(enode));
        int k,m;
        cin>>k;
        cin>>m;
        p->adj=m;
        p->next=g->list[k].find;
        g->list[k].find=p;        
    }
}
void dfs(graphic *g,int i)
{
       enode *p;
        visit[i]=true;
       p=g->list[i].find;
       while(p)
       {
           if(!visit[p->adj])
              dfs(g,p->adj);
           else
              p=p->next;        
       }  
}
void dbfst(graphic *g)
{
     for(int i=1;i<=g->n;i++)
        visit[i]=false;
     for(int i=1;i<=g->n;i++)
        if(!visit[i])
        {
             dfs(g,i);
             counts++;
        }
}
int main()
{
    int n;
    cin>>n;
    for(int m=1;m<=n;m++)
    {
       counts=0;
       graphic *g;
       g=(graphic *)malloc(sizeof(graphic));
       create(g);
       dbfst(g);
       cout<<counts<<endl;
    }
   return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -