Selaa lähdekoodia

add DFS and BFS

Olivier Marty 8 vuotta sitten
vanhempi
commit
bc9f0099e7
2 muutettua tiedostoa jossa 24 lisäystä ja 0 poistoa
  1. 21 0
      code/BFS_DFS.cpp
  2. 3 0
      main.tex

+ 21 - 0
code/BFS_DFS.cpp

@@ -0,0 +1,21 @@
+// BFS and DFS with adjacency matrix G
+void bfs(int from) {
+// void dfs(int from) {
+  queue<int> Q;
+  // stack<int> Q;
+  int visited[1000];
+  memset(visited, 0, sizeof(visited));
+  Q.push(from); // parent[from] = -1
+  visited[from] = 1;
+  while(!Q.empty()) {
+    int s = Q.front();
+    // int s = Q.top();
+    Q.pop();
+    for(int i = 1; i <= N; i++)
+      if(G[s][i] && !visited[i]) {
+        Q.push(i); // parent[i] = s
+        visited[i] = 1;
+      }
+    // deal with s
+  }
+}

+ 3 - 0
main.tex

@@ -124,6 +124,9 @@ Temps de cuisson : $O(n)$
 \subsection{Strongly connected components}
 {\scriptsize\lstinputlisting{code/SCC.cc}}
 
+\subsection{DFS/BFS}
+{\scriptsize\lstinputlisting{code/BFS_DFS.cpp}} % OK
+
 \section{Structures de données}
 
 \subsection{Suffix arrays}