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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Advertisements

Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Αλγόριθμοι Αναζήτησης
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι18/10/2010.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Διάσχιση.
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Ουρά Προτεραιότητας: Heap
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής,
Δυναμικη Δεσμευση Μνημης Συνδεδεμενες Λιστες (dynamic memory allocation, linked lists) Πως υλοποιουμαι προγραμματα που δεν γνωριζουμε πριν την εκτελεση.
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 A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι115/4/2015.
Λίστες παράλειψης (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 Συνδυαστικό αντικείμενο που αποτελείται από.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
9-1 ΜΑΘΗΜΑ 9 ο Δυαδικά Δένδρα, Διάσχιση Δυαδικών Δένδρων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
Δομές Δεδομένων και Αρχεία
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Επίλυση Προβλημάτων με Αναζήτηση
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
ΓΡΑΦΟΙ (GRAPHS).
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Στοιχεία Θεωρίας Γραφημάτων
EPL231 – Data Structures and Algorithms
EPL231 – Data Structures and Algorithms
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
19η Διάλεξη Εξωτερική Αναζήτηση και Β-δέντρα Ε. Μαρκάκης
Ελαφρύτατες διαδρομές
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
מבני נתונים ויעילות אלגוריתמים
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

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

Οριζόντια διερεύνηση γραφήματος Breadth-first search (BFS) b c f a c d a b b e d f g h a e h e e f

Οριζόντια διερεύνηση γραφήματος b c f a c d a b b e d f g h a e h e e f Η αναζήτηση θα ξεκινήσει από τον κόμβο . Χρησιμοποιούμε μία FIFO ουρά Q για να κρατάμε τη σειρά επίσκεψης των κόμβων.

Οριζόντια διερεύνηση γραφήματος b c f a c d a b b e d f g h a e h e e f Ουρά Q : Αρχικά κενή

Οριζόντια διερεύνηση γραφήματος b c f a c d a b b e d f g h a e h e e f τοποθέτηση(Q,a) : τοποθετεί το a στο τέλος της ουράς Ουρά Q : Αρχικά κενή

Οριζόντια διερεύνηση γραφήματος 1 b c f a c d a b b e d f g h a e h e e f τοποθέτηση(Q,a) : τοποθετεί το a στο τέλος της ουράς Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 b c f a c d a b b e d f g h a e h e e f λήψη(Q) : επιστρέφει το πρώτο στοιχείο της Q που θα επεξεργαστούμε Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 b c f a c d a b b e d f g h a e h e e f επεξεργασία του a Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 b c f a c d a b 2 b e d f g h a e h e e f τοποθέτηση(Q,b) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 b e d f g h a e h e e f τοποθέτηση(Q,c) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 4 b e d f g h a e h e e f τοποθέτηση(Q,f) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 4 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 4 b e d f g h a e h e e f επεξεργασία του b Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 4 b e d f g h a e h e e f o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 4 b e d f g h a e h e e f o κόμβος c είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f τοποθέτηση(Q,d) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f επεξεργασία του c Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f o κόμβος b είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f επεξεργασία του f Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 b c f a c d a b 2 5 4 b e d f g h a e h e e f o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 b e d f g h a e h e e f τοποθέτηση(Q,e) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f τοποθέτηση(Q,h) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f επεξεργασία του d Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος b είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f επεξεργασία του e Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος d είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος f είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f τοποθέτηση(Q,g) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος h είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f επεξεργασία του h Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος f είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f λήψη(Q) Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f επεξεργασία του g Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 b c f a c d a b 2 5 4 7 b e d f g h a e h e e f Έχουμε επεξεργαστεί όλους τους κόμβους. Ουρά Q :

Οριζόντια διερεύνηση γραφήματος 1 3 6 8 2 5 4 7 Δένδρο οριζόντιας διερεύνησης με αφετηρία τον κόμβο a : Κάθε κόμβος συνδέεται με τον κόμβο που τον έβαλε στην ουρά. Για κάθε κόμβο x το μονοπάτι του δένδρου από το a στο x έχει τον ελάχιστο δυνατό αριθμό ακμών μεταξύ όλων τον μονοπατιών από το a στο x στο γράφημα

Οριζόντια διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους 1 3 6 8 9 11 13 2 5 4 7 10 12 14 Δάσος οριζόντιας διερεύνησης

Οριζόντια διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους 1 3 6 8 9 11 13 2 5 4 7 10 12 14 Δάσος οριζόντιας διερεύνησης : Κάθε δένδρο αποτελεί και μια ξεχωριστή συνιστώσα του γραφήματος Δίνει μια καλή λύση στο στατικό (offline) πρόβλημα εύρεσης-ένωσης, όταν το γράφημα είναι εξαρχής γνωστό

Αναπαράσταση Γραφήματος Λίστες γειτνίασης (adjacency lists): typedef struct node *link; struct node { int v; link next; } link NEW(int v, link next) { link x = malloc(sizeof *x); x-v = v; x->next = next; return x; } main() { int i,j; link adj[N]; for (i = 0; i < N; i++) adj[i] = NULL; while (scanf(“%d %d\n”, &i, &j) == 2){ adj[i] = NEW(j, adj[i]); adj[j] = NEW(i, adj[j]); } Διαβάζει μη κατευθυνόμενο γράφημα

Οριζόντια διερεύνηση γραφήματος typedef struct node *link; struct node { int v; link next; } ... void BFS(int k) /* ο κόμβος k είναι η αφετηρία */ { link t; QUEUEinit(n); QUEUEput(k); while (!QUEUEempty()) k = QUEUEget(); for (t = adj[k]; t != NULL; t = t->next) if (!marked[t->v]) { marked[t->v] = 1; QUEUEput(t->v); } Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές. (Υποθέτουμε ότι κάθε πράξη της ουράς γίνεται σε σταθερό χρόνο.)

Οριζόντια διερεύνηση γραφήματος typedef struct node *link; struct node { int v; link next; } ... void BFS(int k) /* ο κόμβος k είναι η αφετηρία */ { link t; QUEUEinit(n); QUEUEput(k); while (!QUEUEempty()) k = QUEUEget(); for (t = adj[k]; t != NULL; t = t->next) if (!marked[t->v]) { marked[t->v] = 1; QUEUEput(t->v); parent[t->v]=k; } αποθήκευση του γονέα στο δάσος της οριζόντιας διερεύνησης Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές. (Υποθέτουμε ότι κάθε πράξη της ουράς γίνεται σε σταθερό χρόνο.)