Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αναδρομικοί Αλγόριθμοι
Advertisements

Δομές Δεδομένων και Αλγόριθμοι
Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Επίπεδα Γραφήματα (planar graphs)
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Αλγόριθμοι Αναζήτησης
Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Δένδρα στα οποία κάθε.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν διάσπαση πρόβλημα.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση βάρους Κατευθυνόμενο γράφημα.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Γράφοι: Προβλήματα και Αλγόριθμοι
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Διάσχιση.
Δυναμικά Σύνολα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Γραμμικός Προγραμματισμός TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Μια εταιρεία παράγει κέικ δύο κατηγοριών,
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
Επίπεδα Γραφήματα: Έλεγχος Επιπεδότητας TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A αβ ζ η ε γ θ Το γράφημα.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Διερεύνηση γραφήματος
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Στοιχεία Θεωρίας Γραφημάτων
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
Ελαφρύτατες διαδρομές
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

Διερεύνηση γραφήματος

Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος ή κατά βάθος. Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι.

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h

bc a a eb dfg ae e fe f cd b h h Η αναζήτηση θα ξεκινήσει από τον κόμβο. Χρησιμοποιούμε μία στοίβα S για να κρατάμε τη σειρά επίσκεψης των κόμβων.

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S : Αρχικά κενή

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,a) : τοποθετεί το a στην κορυφή της στοίβας 1

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο a που βρίσκεται στην κορυφή της στοίβας 1

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,b) 1 2

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,b) 1 2

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο b που βρίσκεται στην κορυφή της στοίβας 1 2

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος a είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά 1 2

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,c)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο c που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος a είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος b είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S 1 2 3

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο b που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,d) 4

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο d που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος b είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,e)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο e που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος d είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,f)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο f που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος a είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος e είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,h)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο h που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος e είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος f είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο f που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο e που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S ώθηση(S,g)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο g που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος e είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο e που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος h είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο d που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο b που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S επεξεργαζόμαστε τον κόμβο a που βρίσκεται στην κορυφή της στοίβας

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος c είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S o κόμβος f είχε τοποθετηθεί στην S προηγουμένως και δεν τοποθετείται ξανά

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S απώθηση(S)

Καθοδική διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Στοίβα S Έχουμε επεξεργαστεί όλους τους κόμβους.

Καθοδική διερεύνηση γραφήματος Δένδρο καθοδικής διερεύνησης με αφετηρία τον κόμβο a : Κάθε κόμβος συνδέεται με τον κόμβο που τον έβαλε στη στοίβα.

Καθοδική διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους Δάσος καθοδικής διερεύνησης

Καθοδική διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους Κάθε δένδρο αποτελεί και μια ξεχωριστή συνιστώσα του γραφήματος Δάσος καθοδικής διερεύνησης : Δίνει μια καλή λύση στο στατικό (offline) πρόβλημα συνδετικότητας, όταν το γράφημα είναι εξαρχής γνωστό (όπως και η οριζόντια διερεύνηση)

Αναπαράσταση Γραφήματος Λίστες γειτνίασης (adjacency lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A class AdjacencyLists { static class Node { int v; Node next; Node(int v, Node t) { this.v = v; next = t; } } public static void main(String[] args) { int N = Integer.parseInt(args[0]); int M = Integer.parseInt(args[1]); Node adj[] = new Node[V]; for (int i = 0; i < N; i++) adj[i] = null; for (In.init(); !In.empty();) { int i = In.getInt(), j = In.getInt(); adj[j] = new Node(i, adj[j]); adj[i] = new Node(j, adj[i]); } Διαβάζει μη κατευθυνόμενο γράφημα adj

Καθοδική διερεύνηση γραφήματος void DFS(int k) // ο τρέχων κόμβος είναι ο k { marked[k] = true; for (Node t = adj[k]; t != null; t = t.next) if (!marked[t.v]) { parent[t.v] = k; DFS(t.v); } Υλοποίηση με αναδρομή : Η διαχείριση της στοίβας γίνεται από το σύστημα μέσω των αναδρομικών κλήσεων Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές

Καθοδική διερεύνηση γραφήματος void DFS(int k) // ο τρέχων κόμβος είναι ο k { marked[k] = true; for (Node t = adj[k]; t != null; t = t.next) if (!marked[t.v]) { parent[t.v] = k; DFS(t.v); } Υλοποίηση με αναδρομή : Η διαχείριση της στοίβας γίνεται από το σύστημα μέσω των αναδρομικών κλήσεων Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές αποθήκευση του γονέα στο δάσος της καθοδικής διερεύνησης

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f 1 δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f 1 2 δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v. δένδρο καθοδικής διερεύνησης γράφημα

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.

Καθοδική διερεύνηση γραφήματος s a c g k h l d b e i j f δένδρο καθοδικής διερεύνησης γράφημα Καθοδική διερεύνηση (depth-first search) : Εξερευνά ένα μονοπάτι μέχρι να φθάσει σε αδιέξοδο, οπότε και επιστρέφει για να εξερευνήσει ένα διαφορετικό μονοπάτι. Μόλις επισκεφτεί ένα κόμβο v τότε επισκέπτεται αναδρομικά όλους τους κόμβους προς τους οποίους έχει ακμή ο v.