Мне нужен исходный код графика BFS и DFS на C ++ с использованием рекурсии. Вы можете помочь?

5 Ответы


  • Хороший пример программы для создания графика с использованием DFS и BDS можно найти на сайте www.sourcecodesworld.com.

    Этот код создан Аруном Вишну и доступен для выбора и копирования, поэтому вы можете вносить любые корректировки и изменения в соответствии с вашим проектом. На этом веб-сайте есть много других кодов и исходных кодов, поэтому можно будет найти точный код, который вы ищете, просматривая этот сайт.
    • DFS
    DFS означает поиск в глубину и включает в себя процесс использования графа для поиска информации. Поиск начинается с корня, а затем возвращается по каждой ветви, чтобы найти информацию. Поиск в глубину известен как неинформированный поиск, поскольку до поиска не требуется никаких знаний, но поиск идет глубже, пока не будет найдена цель.
    • BFS
    BFS расшифровывается как поиск в ширину и представляет собой аналогичный процесс, поскольку это поиск по графу, который начинается с корня, а затем исследует соседнюю информацию внутри графа, исследуя и исследуя последовательности. При поиске в ширину цель не рассматривается перед поиском, она подтверждается только после того, как она была найдена.
  • Привет,

    код C ++ для DFS и BFS можно найти здесь.

     
    Код для BFS также можно найти здесь .

    В этих примерах вместо этого для завершения поиска использовался цикл.
    Вы можете легко удалить цикл правильно и сделать функцию рекурсивной функцией по мере необходимости.
     
    Надеюсь, это поможет?
  • #include
    #include
    #include

    void create (); // Для создания графика
    void dfs (); // Для обхода при поиске в глубину (DFS).
    Void bfs (); // Для обхода поиска в ширину (BFS).

    Узел структуры // Структура элементов в графике
    {
       int data, status;
       struct node * next;
       struct link * adj;
    };

    struct link // Структура для списка смежности
    {
       struct node * next;
       struct link * adj;
    };

    узел структуры * начало, * p, * q;
    структурная ссылка * l, * k;

    int main ()
    {
       int выбор;
       clrscr ();
       Создайте();
       в то время как (1)
       {
      coutadj = NULL;
      если (флаг == 0)
      {
    начало = р;
    q = p;
    flag ++;
      }
      иначе
      {
    q-> next = p;
    q = p;
      }
       }
       p = начало;
       в то время как (p! = NULL)
       {
      coutadj = k;
        l = k;
    }
    q = начало;
    while (q! = NULL)
    {
        если (q-> data == that)
      k-> next = q;
        q = q-> следующий;
    }
      }
      p = p-> следующий;
       }
       coutnext;
       }
       p = начало;
       qu [0] = p-> данные;
       p-> status = 1;
       в то время как (1)
       {
      если (qu [j] == 0)
    перерыв;
      p = начало;
      while (p! = NULL)
      {
    если (p-> data == qu [j])
         перерыв;
    p = p-> следующий;
      }
      k = p-> adj;
      в то время как (k! = NULL)
      {
    q = k-> next;
    если (q-> статус == 0)
    {
        qu [I] = q-> данные;
        q-> status = 1;
        qu [I + 1] = 0;
        I ++;
    }
    k = k-> прил;
      }
      j ++;
       }
       j = 0;
       cout
  • Пустота BFS (vertic * recieve, int connectedWith [N] [N] / *, string v * /)
    {
    int I = 0;
    очередь <строка> q;
    q.push (получить [I] .name);
    получить [0] .visited = true;
    cout << "n ====== nBREADTH FIRSST SEARCH TRAVERSING:";
    cout << "п ====== п";
    а (! q.empty ())
    {
    int j = 0;
    cout << q.front () << "";

    for (int n = 0; n <N; n ++)
    {
    если (получить [n] .name == q.front ())
    {
    I = n;

    перерыв;
    } // КОНЕЦ IF
    } // КОНЕЦ
    ЦИКЛА q.pop ();
    для (; j <N; j ++)
    {
    если (j == I)
    Продолжить;
    иначе, если (connectedWith [I] [j] == 1 && получить [j] .visited == false)
    {
    получить [j] .visited = true;
    q.push (получить [j] .name);

    } // КОНЕЦ ИНАЧЕЕ IF
    } // КОНЕЦ ЦИКЛА
    } // КОНЕЦ ЦИКЛА
    } // КОНЕЦ ФУНКЦИИ технология
  • #include

    #define MAX 10

    class DFS
    {
    private: Int n;
      int adj [МАКС] [МАКС];
      int посетил [MAX];
    общедоступные: Void dfs (int);
      void readmatrix ();
    };

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

Напишите свой ответ

Ваш ответ появится после модерации