Download - EPL231 – Data Structures and Algorithms

Transcript
Page 1: EPL231 – Data Structures and Algorithms

Lab 11: DFS and BFS

Παναγιώτης Χαραλάμπους27/11/2009

Page 2: EPL231 – Data Structures and Algorithms

ΑΒ

D FC

G EH

Παναγιώτης Χαραλάμπους27/11/2009

Page 3: EPL231 – Data Structures and Algorithms

A B C D E F G HA 0 1 1 1 0 0 0 0B 1 0 1 0 0 0 0 0C 1 1 0 1 0 0 0 0D 1 0 1 0 1 1 1 0E 0 0 0 1 0 1 0 0F 0 0 0 1 1 0 0 0G 0 0 0 1 0 0 0 1H 0 0 0 0 0 0 1 0

Παναγιώτης Χαραλάμπους27/11/2009

Page 4: EPL231 – Data Structures and Algorithms

ΑΒC

ED

FGH

A C E F G

B C DA CA B D

GD H

D FD E

Παναγιώτης Χαραλάμπους27/11/2009

Page 5: EPL231 – Data Structures and Algorithms

Παναγιώτης Χαραλάμπους27/11/2009

Page 6: EPL231 – Data Structures and Algorithms

Α

Β C

Α

Β C

Α

Β C

Γράφος G BFS DFS

Παναγιώτης Χαραλάμπους27/11/2009

Page 7: EPL231 – Data Structures and Algorithms

D

C F

E HA

B G

Έξοδος ΔιαδικασίαςDCABFEHG

Παναγιώτης Χαραλάμπους27/11/2009

Page 8: EPL231 – Data Structures and Algorithms

D

C F

E HA

B G

Έξοδος ΔιαδικασίαςD

C

A

B

F

E

H

G

Ουρά Q{D}

{C,F}

{F, A}

{A, E, H}

{E, H, B}

{H, B}

{B, G}

{G}

{ }

Παναγιώτης Χαραλάμπους27/11/2009

Page 9: EPL231 – Data Structures and Algorithms

Πίνακας Γειτνίασης Πίνακας [8]x[8] Αρχικοποίηση βάση γράφου διαφάνειας 2

Λίστα Γειτνίασης Πίνακας [8]x[1] Κόμβοι που αναπαριστούν ακμές που έχει

η κάθε θέση πίνακα Αρχικοποίηση βάση γράφου διαφάνειας 2

Λίστα για BFSΠαναγιώτης Χαραλάμπους27/11/2009

Page 10: EPL231 – Data Structures and Algorithms

void DFS(Graph G, Vertex v): ξεκινάει την διαδικασία διερεύνησης κατά βάθος από τον κόμβο του γράφου G

void BFS(Graph G, Vertex v): ξεκινάει την διαδικασία διερεύνησης κατά πλάτος από τον κόμβο v του γράφου G

Παναγιώτης Χαραλάμπους27/11/2009

Page 11: EPL231 – Data Structures and Algorithms

Παναγιώτης Χαραλάμπους27/11/2009