Vous êtes sur la page 1sur 72

Breadth First Search

A B C D

front

FIFO Queue

Breadth First Search


A B C D

enqueue source node

front

A
FIFO Queue

Breadth First Search


A B C D

dequeue next vertex

front

A
FIFO Queue

Breadth First Search


A B C D

visit neighbors of A

front

FIFO Queue

Breadth First Search


A B C D

visit neighbors of A

front

FIFO Queue

Breadth First Search


A

A
B C D

B discovered

front

B
FIFO Queue

Breadth First Search


A

A
B C D

visit neighbors of A

front

B
FIFO Queue

Breadth First Search


A

A
B C D

I discovered

front

B I
FIFO Queue

Breadth First Search


A

A
B C D

finished with A

front

B I
FIFO Queue

Breadth First Search


A

A
B C D

dequeue next vertex

front

B I
FIFO Queue

Breadth First Search


A

A
B C D

visit neighbors of B

front

I
FIFO Queue

Breadth First Search


A

A
B C D

visit neighbors of B

front

I
FIFO Queue

Breadth First Search


A

A
B C D

B
I

F discovered

front

I F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

visit neighbors of B

front

I F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

A already discovered

front

I F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

finished with B

front

I F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

dequeue next vertex

front

I F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

visit neighbors of I

front

F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

visit neighbors of I

front

F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

A already discovered

front

F
FIFO Queue

Breadth First Search


A

A
B C D

B
I

visit neighbors of I

front

F
FIFO Queue

Breadth First Search


A

A
B C D

I
I

E discovered

front

F E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

visit neighbors of I

front

F E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

F already discovered

front

F E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

I finished

front

F E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

dequeue next vertex

front

F E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

visit neighbors of F

front

E
FIFO Queue

Breadth First Search


A

A
B C D

I
I

G discovered

front

E G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

F finished

front

E G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

dequeue next vertex

front

E G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

visit neighbors of E

front

G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

E finished

front

G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

dequeue next vertex

front

G
FIFO Queue

Breadth First Search


A

A
B C D

I
I

visit neighbors of G

front

FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

C discovered

front

C
FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

visit neighbors of G

front

C
FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

H discovered

front

C H
FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

G finished

front

C H
FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

dequeue next vertex

front

C H
FIFO Queue

Breadth First Search


A

A
B

G
C D

I
I

visit neighbors of C

front

H
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

D discovered

front

H D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

C finished

front

H D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

get next vertex

front

H D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

visit neighbors of H

front

D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

finished H

front

D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

dequeue next vertex

front

D
FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

visit neighbors of D

front

FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

D finished

front

FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

dequeue next vertex

front

FIFO Queue

Breadth First Search


A

A
B

G
C

C
D

I
I

STOP

front

FIFO Queue

Depth-first search

Example
0 8
source

Adjacency List

Visited Table (T/F)


0 1 2

F F F F F F

1
3 4 5

3 4 5

F
F F F

7 8 9

Pred
Initialize visited table (all False) Initialize Pred to -1

Example
Adjacency List 0 8
source

Visited Table (T/F)


0 1 2 3

F F T F F F

2 1 3 7 5

4 5

F
F F F

7 8 9

Pred
Mark 2 as visited

RDFS( 2 ) Now visit RDFS(8)

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

F F T F F F

1
3 4 5 7

3 4 5

6
7 8 9

F
F T F

2 -

Pred
Mark 8 as visited
Recursive calls

RDFS( 2 ) RDFS(8) 2 is already visited, so visit RDFS(0)

mark Pred[8]

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T F T F F F

8 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T F

2 -

Pred
Mark 0 as visited
Recursive calls

RDFS( 2 ) RDFS(8) RDFS(0) -> no unvisited neighbors, return to call RDFS(8)

Mark Pred[0]

Example
0
Back to 8 8
source

Adjacency List

Visited Table (T/F)


0 1 2

T F T F F F

8 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T F

2 -

Pred
Recursive calls

RDFS( 2 ) RDFS(8) Now visit 9 -> RDFS(9)

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T F T F F F

8 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Pred
Mark 9 as visited
Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) -> visit 1, RDFS(1)

Mark Pred[9]

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T F F F

8 9 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Pred
Mark 1 as visited
Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) visit RDFS(3)

Mark Pred[1]

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T F F

8 9 1 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Pred
Mark 3 as visited
Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) visit RDFS(4)

Mark Pred[3]

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T T F

8 9 1 3 -

1
3 4 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Recursive calls

RDFS( 2 ) Mark 4 as visited RDFS(8) RDFS(9) Mark Pred[4] RDFS(1) RDFS(3) RDFS(4) STOP all of 4s neighbors have been visit return back to call RDFS(3)

Pred

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T T F

8 9 1 3 -

1
3 4 Back to 3 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) visit 5 -> RDFS(5)

Pred

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T T T

8 9 1 3 3

1
3 4 5 7

3 4 5

6
7 8 9

F
F T T

2 8

Recursive calls

RDFS( 2 ) RDFS(8) Mark 5 as visited RDFS(9) Mark Pred[5] RDFS(1) RDFS(3) RDFS(5) 3 is already visited, so visit 6 -> RDFS(6)

Pred

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T T T

8 9 1 3 3

1
3 4 5 7

3 4 5

6
7 8 9

T
F T T

5
2 8

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) RDFS(5) RDFS(6) visit 7 -> RDFS(7)

Pred
Mark 6 as visited
Mark Pred[6]

Example
0
8
source

Adjacency List

Visited Table (T/F)


0 1 2

T T T T T T

8 9 1 3 3

1
3 4 5 7

3 4 5

6
7 8 9

T
T T T

5
6 2 8

Recursive calls

RDFS( 2 ) RDFS(8) Mark 7 as visited RDFS(9) RDFS(1) Mark Pred[7] RDFS(3) RDFS(5) RDFS(6) RDFS(7) -> Stop no more unvisited neighbors

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) RDFS(5) RDFS(6) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) RDFS(5) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) RDFS(3) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) RDFS(1) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) RDFS(9) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

Recursive calls

RDFS( 2 ) RDFS(8) -> Stop

Pred

Example
0 Adjacency List Visited Table (T/F)
0

T T T T T T

8 9 1 3 3

8
source

1 2

2 1 3

3 4 5

7
5

T
T T T

5
6 2 8

7 8 9

RDFS( 2 ) -> Stop


Recursive calls

Pred

Example
0 8
source

Adjacency List

Visited Table (T/F)


0 1

T T T T T T

8 9 1 3 3

2 1 3 7 5

2 3 4 5

6
7 8 9

T
T T T

5
6 2 8

Pred

Vous aimerez peut-être aussi