Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Przeszukiwanie w głąb/Depth First Search - Wikipedia, wolna encyklopedia

Przeszukiwanie w głąb/Depth First Search

Z Wikipedii

Zasugerowano, aby ten artykuł zintegrować z artykułem Depth First Search.

DFS - (z ang. Depth First Search) jest to algorytm przeszukiwania grafu "w głąb". Przy przeszukiwaniu w głąb każdy wierzchołek grafu, oraz każda krawędź jest rozpatrywana dokładnie jeden raz (stąd złożoność algorytmu DFS O(n+m)). Algorytm DFS jest algorytmem rekurencyjnym. Funkcja wywołuje sama siebie, aż stwierdzi że odwiedziła już wszystkie wierzchołki grafu.

Opis działania algorytmu:

  1. Na początku wszystkie wierzchołki grafu "pokolorowane" są na biało (tzn. są nieodwiedzone)
  2. Zaczynamy przeszukiwanie od zadanego wierzchołka (np.1), kolorujemy go na szaro (został odwiedzony, ale nie zakończony)
  3. Odwiedzamy wszystkich białych sąsiadów i kolorujemy ich na szaro.
  4. Od każdego wierzchołka pokolorowanego na szaro odpalamy tę samą funkcję.
  5. Jeśli wierzchołek nie ma białych sąsiadów, to kolorujemy go na czarno i "cofamy" się, aż wrócimy do wierzchołka wyjściowego.

Może się zdarzyć, że w ten sposób nie odwiedzimy wszystkich wierzchołków grafu. (np. graf 1->2, 3->4). Aby uniknąć takich problemów, wystarczy po sprawdzeniu wierzchołków od 1 uruchomić funkcję dfs dla wszystkich innych białych wierzchołków. Nie musimy się martwić o złożoność- jeśli do wierzchołka doszliśmy od punktu 1, to nie będziemy już rozpatrywać go ponownie dzięki uprzedniemu pokolorowaniu go na czarno.

[edytuj] Przykładowy zapis w pseudokodzie(wzorowanym na Pascalu)

graf zapisany jako macierz incydencji.

procedure DFS(k:longint);
 var j:longint;
begin
  czy[k]:=szary;  
   for j:=1 to V do
     if (t[k][j]) and (czy[j]=bialy) then DFS(j);      
  czy[k]:=czarny;
end;

begin 
 readln(V,E);   {wierzcholki, krawedzie}
 wczytaj_graf;
 for i:=1 to V do czy[i]:=bialy; {zeruj}
 for i:=1 to V do
  if czy[i]=bialy then DFS(i); 
end.

Zobacz też: problem najkrótszej ścieżki, algorytm Bellmana-Forda

[edytuj] Linki zewnętrzne

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com