J'ai besoin du code source des graphiques BFS et DFS en C++ à l'aide de la récursivité. Pouvez-vous m'aider ?

5 Réponses


  • Un bon exemple de programme pour créer un graphique à l'aide de DFS et BDS peut être trouvé sur www.sourcecodesworld.com.

    Ce code est créé par Arun Vishnu et peut être sélectionné et copié afin que vous puissiez apporter des adaptations et des modifications afin qu'il convienne à votre projet. Il existe de nombreux autres codes et codes sources sur ce site Web, il est donc possible de trouver le code exact que vous recherchez en consultant ce site.
    • DFS
    DFS signifie Depth-first search et implique le processus d'utilisation d'un graphique pour trouver des informations. La recherche commence à la racine, puis revient le long de chaque branche pour trouver des informations. La recherche en profondeur d'abord est connue comme une recherche non informée car aucune connaissance n'est nécessaire avant la recherche, mais la recherche va plus loin jusqu'à ce que l'objectif soit trouvé.
    • BFS
    BFS signifie recherche en largeur d'abord et est un processus similaire car il s'agit d'une recherche de graphe qui commence à la racine, puis explore les informations voisines dans le graphe en explorant et en examinant des séquences. Dans une recherche en largeur d'abord, l'objectif n'est pas pris en compte avant la recherche, il n'est reconnu qu'une fois qu'il a été trouvé.
  • Salut, le

    code C++ pour DFS et BFS peut être trouvé ici Le

     
    code pour BFS peut également être trouvé ici .

    Dans ces exemples, la boucle a été utilisée pour terminer la recherche à la place.
    Vous pouvez facilement supprimer la boucle correctement et faire de la fonction une fonction récursive si nécessaire.
     
    J'espère que ça aide?
  • #include
    #include
    #include

    void create(); // Pour créer un graphe
    void dfs(); // Pour la traversée en profondeur d'abord (DFS).
    Vide bfs(); // Pour le parcours de recherche en largeur d'abord (BFS).

    Nœud Struct // Structure des éléments du graphe
    {
       int data,status;
       nœud de structure *suivant;
       lien de structure *adj;
    } ;

    struct link // Structure pour la liste de contiguïté
    {
       struct node *next;
       lien de structure *adj;
    } ;

    nœud de structure *start,*p,*q;
    lien de structure *l,*k;

    int main()
    {
       choix int;
       clrscr();
       créer();
       while(1)
       {
      coutadj=NULL;
      if(drapeau==0)
      {
    début=p;
    q=p;
    drapeau++;
      }
      else
      {
    q->suivant=p;
    q=p;
      }
       }
       p=début;
       while(p!=NULL)
       {
      coutadj=k;
        l=k;
    }
    q=début ;
    while(q!=NULL)
    {
        if(q->data==that)
      k->next=q;
        q=q->suivant ;
    }
      }
      p=p->suivant ;
       }
       coutnext;
       }
       p=début ;
       qu[0]=p->données ;
       p->état=1 ;
       while(1)
       {
      if(qu[j]==0)
    pause ;
      p=début ;
      while(p!=NULL)
      {
    if(p->data==qu[j])
         break;
    p=p->suivant ;
      }
      k=p->adj;
      while(k!=NULL)
      {
    q=k->suivant;
    if(q->status==0)
    {
        qu[I]=q->data;
        q->état=1 ;
        qu[I+1]=0;
        je++ ;
    }
    k=k->adj;
      }
      j++;
       }
       j=0;
       cout
  • Void BFS(vertic *recieve,int connectedWith[N][N]/*,string v*/)
    {
    int I=0;
    file d'attente<chaîne> q;
    q.push(receve[I].name);
    recevoir[0].visité = vrai;
    cout<<"n======nBREADTH FIRST SEARCH TRAVERSING :";
    cout<"n======n" ;
    while(!q.empty())
    {
    int j=0;
    cout<<q.front()<<" ";

    for(int n=0;n<N; n++)
    {
    if( recieve[n].name == q.front() )
    {
    I=n;

    Pause;
    }//END OF IF
    }//END OF FOR LOOP
    q.pop();
    pour( ;j<N; j++ )
    {
    si(j==I)
    Continuez;
    else if( connectedWith[I][j]==1 && recieve[j].visited==false )
    {
    recieve[j].visited = true;
    q.push(receve[j].name);

    }//END OF ELSE IF
    }//END OF FOR LOOP
    }//END OF WHILE LOOP
    }//END OF FUNCTION la technologie
  • #include

    #define MAX 10

    class DFS
    {
    private : Int n;
      int adj[MAX][MAX];
      int visité[MAX];
    public : Void dfs(int);
      void readmatrix();
    } ;

    void DFS :: Readmatrix()
    {
    int I,j;
    cout > n;
    cout

Ecrivez votre réponse

Votre réponse apparaîtra après modération