Download - EPL231 – Data Structures and Algorithms

Transcript
Page 1: EPL231 – Data Structures and Algorithms

Lab 11: DFS and BFS

Page 2: EPL231 – Data Structures and Algorithms

ΑΒ

D FC

G EH

Παναγιώτης Χαραλάμπους19/11/2010 2

Page 3: EPL231 – Data Structures and Algorithms

A B C D E F G H

A 0 1 1 1 0 0 0 0

B 1 0 1 0 0 0 0 0

C 1 1 0 1 0 0 0 0

D 1 0 1 0 1 1 1 0

E 0 0 0 1 0 1 0 0

F 0 0 0 1 1 0 0 0

G 0 0 0 1 0 0 0 1

H 0 0 0 0 0 0 1 0

Παναγιώτης Χαραλάμπους19/11/2010 3

Page 4: EPL231 – Data Structures and Algorithms

ΑΒC

ED

FGH

A C E F G

B C D

A C

A B D

G

D H

D F

D E

Παναγιώτης Χαραλάμπους19/11/2010 4

Page 5: EPL231 – Data Structures and Algorithms

Παναγιώτης Χαραλάμπους19/11/2010 5

Page 6: EPL231 – Data Structures and Algorithms

Α

Β C

Α

Β C

Α

Β C

Γράφος G BFS DFS

Παναγιώτης Χαραλάμπους19/11/2010 6

Page 7: EPL231 – Data Structures and Algorithms

D

C F

E HA

B G

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

D

C

A

B

F

E

H

G

Παναγιώτης Χαραλάμπους19/11/2010 7

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}

{ }

Παναγιώτης Χαραλάμπους19/11/2010 8

Page 9: EPL231 – Data Structures and Algorithms

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

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

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

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

Page 10: EPL231 – Data Structures and Algorithms

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

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

Παναγιώτης Χαραλάμπους19/11/2010 10

Page 11: EPL231 – Data Structures and Algorithms