Ich benötige den BFS- und DFS-Graph-Quellcode in C++ mit Rekursion Können Sie helfen?

5 Antworten


  • Ein gutes Beispiel für ein Programm zum Erstellen eines Diagramms mit DFS und BDS finden Sie unter www.sourcecodesworld.com.

    Dieser Code wurde von Arun Vishnu erstellt und kann ausgewählt und kopiert werden, damit Sie Anpassungen und Änderungen vornehmen können, damit er zu Ihrem Projekt passt. Es gibt viele andere Codes und Quellcodes auf dieser Website, so dass es möglicherweise möglich ist, den genauen Code zu finden, den Sie suchen, wenn ich diese Website durchsuche.
    • DFS
    DFS steht für Depth-First-Suche und beinhaltet den Prozess der Verwendung eines Graphen, um Informationen zu finden. Die Suche beginnt an der Wurzel und geht dann entlang jeder Verzweigung zurück, um Informationen zu finden. Die Tiefensuche wird als uninformierte Suche bezeichnet, da vor der Suche kein Wissen erforderlich ist, aber die Suche geht tiefer, bis das Ziel gefunden ist.
    • BFS
    BFS steht für Breadth-first-Suche und ist ein ähnlicher Prozess wie eine Graphsuche, die an der Wurzel beginnt und dann benachbarte Informationen innerhalb des Graphen untersucht, indem sie Sequenzen untersucht und untersucht. Bei einer Breitensuche wird das Ziel vor der Suche nicht berücksichtigt, es wird erst quittiert, wenn es gefunden wurde.
  • Hallo,

    C++-Code für DFS und BFS kann hier gefunden werden

     
    Code für BFS kann auch hier gefunden werden .

    In diesen Beispielen wurde stattdessen eine Schleife verwendet, um die Suche zu beenden.
    Sie können die Schleife einfach korrekt entfernen und die Funktion nach Bedarf zu einer rekursiven Funktion machen.
     
    Ich hoffe es hilft?
  • #include
    #include
    #include

    void create(); // Zum Erstellen eines Graphen
    void dfs(); // Für Deep-First-Search(DFS)-Traversal.
    Leere bfs(); // Für Breitensuche (BFS) Traversal.

    Struct node // Struktur für Elemente im Graphen
    {
       int data,status;
       Strukturknoten *weiter;
       struct link *adj;
    };

    struct link // Struktur für die Adjazenzliste
    {
       struct node *next;
       struct link *adj;
    };

    Strukturknoten *start,*p,*q;
    struct link *l,*k;

    int main()
    {
       int Wahl;
       clrscr();
       schaffen();
       while(1)
       {
      coutaj=NULL;
      if(flag==0)
      {
    start=p;
    q = p;
    Flagge++;
      }
      else
      {
    q->next=p;
    q = p;
      }
       }
       p=Start;
       while(p!=NULL)
       {
      coutadj=k;
        l=k;
    }
    q=Anfang;
    while(q!=NULL)
    {
        if(q->data==that)
      k->next=q;
        q=q->weiter;
    }
      }
      p=p->weiter;
       }
       Weiter;
       }
       p=Start;
       qu[0]=p->Daten;
       p->Status=1;
       while(1)
       {
      if(qu[j]==0)
    Pause;
      p = Anfang;
      while(p!=NULL)
      {
    if(p->data==qu[j])
         Pause;
    p=p->weiter;
      }
      k = p -> adj;
      while(k!=NULL)
      {
    q=k->nächste;
    if(q->status==0)
    {
        qu[I]=q->data;
        q->Status=1;
        qu[I+1]=0;
        I++;
    }
    k = k -> adj;
      }
      j++;
       }
       j=0;
       cout
  • Void BFS(Vertic *recieve,int connectedWith[N][N]/*,string v*/)
    {
    int I=0;
    Warteschlange<string> q;
    q.push(empfangen[I].name);
    recieve[0].visited = true;
    cout<<"n======nBREITE ERSTE SUCHE TRAVERSING :";
    cout<<"n======n";
    while(!q.leer())
    {
    int j=0;
    cout<<q.front()<<" ";

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

    brechen;
    }//END OF IF
    }//END OF FOR LOOP
    q.pop();
    für( ;j<N; j++)
    {
    wenn(j==I)
    fortsetzen;
    else if(connectedWith[I][j]==1 && recieve[j].visited==false)
    {
    recieve[j].visited = true;
    q.push(receive[j].name);

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

    #define MAX 10

    Klasse DFS
    {
    private : Int n;
      int adj[MAX][MAX];
      int besucht[MAX];
    public : Leere dfs(int);
      void readmatrix();
    };

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

Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear