ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33...

33
ESCOLA DE ENGENHARIA C++ Grafos e Árvores

Transcript of ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33...

Page 1: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

ESCOLA DE ENGENHARIA

C++Grafos e Árvores

Page 2: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 2/33

Instalação ElétricaInstalação Elétrica

5,00 m

5,00

m

L

Qu

adroTom A

Int

Tom B

Pontos, conduítes e fiação.

Page 3: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 3/33

América do SulAmérica do Sul

Fronteiras entre

os países.

Page 4: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 4/33

HerançaHerança

Relacionamento de

especialização.

MarinhoMarinho

AnimalAnimal

MamíferoMamífero

LeãoLeão HomemHomem

InsetoInseto

MoscaMosca BarataBarataPeixePeixe

HomoscaHomosca

Page 5: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 5/33

x--;if(x>0) x+= 2;for(int k= 1; k<=x; k++){ y+= 3; w--; if(w<0) y--; else y++;}y= sqr(x);

Linguagem C++Linguagem C++

Indentação das

linhas do programa.

1

1.11.2

1.3

1.3.11.3.21.3.3

1.4

1.3.4

Page 6: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 6/33

Fluxograma ISO 5807Fluxograma ISO 5807

ui+1|L(ui+1)= mín({L(v)| v D})

início

M = {u0}

L(u0) = 0

L(v) = v D

i = 0

L(v) = mín(L(v), L(ui)+W(ui , v)) v D

F

L(v) é a distânciamínima de u0 até v, v M

V

M = M {ui+1}

i = i + 1

fim

D =

1

1

Processos e

processos de

decisão.

Page 7: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 7/33

ListaLista Cabeça

Remove do começo

Insere no começo

Insere no começo

Remove do meio

Insere no fim

Remove do fim

Page 8: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 8/33

PilhaPilhaCabe

ça

Empilha

Empilha

Desempilha

Desempilha

Empilha

Page 9: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 9/33

FilaFilaCabe

ça

Enfileira

Desenfileira

Desenfileira

Desenfileira

Enfileira

Enfileira

Page 10: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 10/33

Grafos e Dígrafos (Graph, Digraph)Grafos e Dígrafos (Graph, Digraph)

• V V ØØ

• V V E = Ø E = Ø

• Ψ : E Ψ : E { { {{v, wv, w}} | v, w | v, w V} (Grafo) V} (Grafo)

• Ψ : E Ψ : E { { ((v, wv, w)) | v, w | v, w V} (Dígrafo) V} (Dígrafo)

G = (V, E, G = (V, E, Ψ)Ψ)

Vértices Arestas

ou Arcos

Função de

IncidênciaDirigido,

Orientado (Directed)

Page 11: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 11/33

Exemplo de GrafoExemplo de Grafo

Lula = (Bar, Bu, Lula = (Bar, Bu, Do)Do)

Do(A) = {a, b} Do(B) = {b, c}Do(C) = {c, c} = {c}Do(D) = {c, d}

Do(E) = {b, d}Do(F) = {d, e}Do(G) = {b, e}Do(H) = {b, e}

A

B

C

D

F

G

H

E

c

b

e

d a

Do

Bar = {a, b, c, d, e}Bu = {A, B, C, D, E,

F, G, H}

Page 12: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 12/33

AB

C

D

F

G

H

E

Outra Geometria do exemploOutra Geometria do exemplo

c

be

d

amude a posição dos arcos

mude a posição dos vértices

Os arcos

podem se

cruzar.

Page 13: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 13/33

Exemplo de DígrafoExemplo de DígrafoPico = (Lé, DeChu, Chu)Pico = (Lé, DeChu, Chu)

Chu(A) = (a, b) Chu(B) = (b, c)Chu(C) = (c, c)

Chu(D) = (c, d)

Chu(E) = (b, d)Chu(F) = (d, e)Chu(G) = (b, e)Chu(H) = (b, e)

G

H

E

c

b

e

d a

Chu

Lé = {a, b, c, d, e}

DeChu = {A, B, C, D,

E, F, G, H}

A

B

C

D

F

Page 14: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 14/33

Grafo SimplesGrafo Simples

Não possui laços (loops)Não possui laços (loops)

Não possui arestas múltiplasNão possui arestas múltiplas

X XX

X

X X

Page 15: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 15/33

Vértices AdjacentesVértices Adjacentes

Grafo:Grafo: o vértice a é adjacente ao vértice b;o vértice a é adjacente ao vértice b; o vértice b é adjacente ao vértice a.o vértice b é adjacente ao vértice a.

b aA

Dígrafo:Dígrafo: o vértice a o vértice a nãonão é adjacente ao vértice b; é adjacente ao vértice b; o vértice b é adjacente ao vértice a.o vértice b é adjacente ao vértice a.

b aA

Page 16: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 16/33

Grafo e Matriz de AdjacênciaGrafo e Matriz de Adjacência

aa bb cc dd ee

aa 00 11 00 00 00

bb 11 00 11 11 22

cc 00 11 11 11 00

dd 00 11 11 00 11

ee 00 22 00 11 00

c

b

e

d aA

B

C

D

F

G

H

E

simétrica

i

j

cada elemento da matriz é a quantidade de cada elemento da matriz é a quantidade de arestas que vão do vértice arestas que vão do vértice ii ao vértice ao vértice jj e vice- e vice-versa (são adjacentes).versa (são adjacentes).

b

e

e

b 2

2

Exemplo

Page 17: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 17/33

aa bb cc dd ee

aa 00 11 00 00 00

bb 00 00 11 11 22

cc 00 00 11 11 00

dd 00 00 00 00 11

ee 00 00 00 00 00

Dígrafo e Matriz de AdjacênciaDígrafo e Matriz de Adjacência

c

b

e

d aA

B

C

D

F

G

H

E

cada elemento da matriz é a quantidade de cada elemento da matriz é a quantidade de arestas que vão do vértice arestas que vão do vértice ii ao vértice ao vértice jj (o j é (o j é adjacente ao i).adjacente ao i).

do i

aoje

b 2

Exemplo

18/25 = 72% de nulos

Page 18: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 18/33

Rede ou Grafo PonderadoRede ou Grafo Ponderado

R = (V, E, R = (V, E, Ψ, ω)Ψ, ω)

Vértices

Arestas ou

Arcos

Função de

Incidência

Função de

Pesos

ω : E ω : E RR (número real)(número real)

Page 19: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 19/33

Lu = (Isa, He, Lu = (Isa, He, Le, Na)Le, Na)

Exemplo de RedeExemplo de Rede

6

5

8

7

7

4

3

6Isa = {a, b, c, d, e}Isa = {a, b, c, d, e}

He = {A, B, C, D, E, He = {A, B, C, D, E,

F, G, H}F, G, H}Le, NaLe, Na

Le(B)={b, c}, Na(B)=5Le(B)={b, c}, Na(B)=5

Le(A)={a, b}, Na(A)=6Le(A)={a, b}, Na(A)=6

Le(C)={c}, Na(C)=8Le(C)={c}, Na(C)=8

Le(D)={c, d}, Na(D)=7Le(D)={c, d}, Na(D)=7

Le(E) = {b, d}, Na(E)=6Le(E) = {b, d}, Na(E)=6

Le(F) = {d, e}, Na(F)=7Le(F) = {d, e}, Na(F)=7

Le(G) = {b, e}, Na(G)=4Le(G) = {b, e}, Na(G)=4

Le(H) = {b, e}, Na(H)=3Le(H) = {b, e}, Na(H)=3

c

b

e

d a

Page 20: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 20/33

1 2

3 4

8

12

7

119 10

5 6

13

15

14

1716

a b

g h

edc

f

i j

k n

q

s t

rpo

ml

u v

cucaracha

Passeio (Walk)Passeio (Walk)Seqüência não nula, finita e alternada de vértices adjacentes e arestas incidentes.W = v0e1 v1e2 v2e3 ... ekvk

onde:• 1 k n (nN*)• (ek) = {vk-1, vk}

• Cabeça = 3c4e6f5d3 (fechado)

Exemplos:• Antenas = 1a3c4b2

• W1 = 14t17r14n12n14m10• W2 = 5f6v10h8h10m14

• W3 = 5i15o13l9u5 (fechado)

• W4 = 12n14

1 2

3 4

a b

c3 4

5 6

edc

f

Page 21: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 21/33

1 2

3 4

8

12

7

119 10

5 6

13

15

14

1716

a b

g h

edc

f

i j

k n

q

s t

rpo

ml

u v

cucaracha

Passeio onde as arestas não se repetem.

Exemplos:• Antenas = 1a3c4b2

Trajeto (Trail)Trajeto (Trail)

• Cabeça = 3c4e6f5d3 (fechado)• Patinha Direita Central = 12n14• T1 = 2b4e6j15p14t17

• T2 = 2b4e6j15p14r17

• T3 = 11k13s16q13l9u5i15j6f5

12

14

n

1 2

3 4

a b

c3 4

5 6

edc

f

Page 22: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 22/33

1 2

3 4

8

12

7

119 10

5 6

13

15

14

1716

a b

g h

edc

f

i j

k n

q

s t

rpo

ml

u v

cucaracha

Passeio onde os vértices não se repetem.

Exemplos:• Antenas = 1a3c4b2

Caminho (Path)Caminho (Path)

• Patinha Direita Central = 12n14• P1 = 11k13o15j6v10m14t17• P2 = 2b4e6j15p14t17• P3 = 2b4e6j15p14r17

• P4 = 8h10m14

12

14

n

1 2

3 4

a b

c

Page 23: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 23/33

1 2

3 4

8

12

7

119 10

5 6

13

15

14

1716

a b

g h

edc

f

i j

k n

q

s t

rpo

ml

u v

cucaracha

Ciclo (Cycle)Ciclo (Cycle)

Trajeto fechado (v0=vk).

Exemplos:• Cabeça = 3c4e6f5d3 (fechado)

• Asa Esquerda = 5i15o13l9u5 (fechado)• Patona Direita = 14t17r14 (fechado)• C1 = 6v10m14t17r14p15j6 (fechado)• C2 = 5f6v10m14p15o13l9u5 (fechado)• C3 = 3c4e6v10m14p15o13l9u5d3 (fechado)

15

f

i

o

l

u 5

13

9

14

17

t

r

3 4

5 6

edc

f

Page 24: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 24/33

DAG (Directed Acyclic Graph)DAG (Directed Acyclic Graph)

Redes PERT (Program Evaluation and Review Technique):DAG ponderado onde os arcos representam atividades, os vértices representam o início e o fim das atividade e os pesos representam intervalos de tempo.

5

3 6

9 4

8

53

5

0 2

3

1

78

8

7

2

6

Page 25: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 25/33

Árvore (Tree)Árvore (Tree)Grafo acíclico (não possui ciclos) e conexo (existe um caminho entre qualquer par de vértices distintos).

Page 26: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 26/33

Grafos e Listas de AdjacênciaGrafos e Listas de Adjacência

A

B

C

D

E

A

B

C

D

0E

0

0

0

113

1

1

3

02

01

A lista de adjacência está em ordem

crescente de vértices (do A até o E) de forma

a facilitar a implementação.

Page 27: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 27/33

Dígrafos e Listas de AdjacênciaDígrafos e Listas de Adjacência

A

B

C

D

E

A

B

C

D

0

E

0

0

0

0

0

1 2 3

1 1

1

3 1

Lista dos Vértices

Lista de Adjacênciado vértice A

Lista de Adjacênciado vértice B

Lista de Adjacênciado vértice C

Lista de Adjacênciado vértice D

Lista de Adjacência do vértice E

Page 28: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 28/33

ÁrvoreÁrvore

nível 0

nível 1

nível 2

nível 3

A

B C D E F

G H I J K L M

N O P Q R S

Page 29: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 29/33

Árvore: Nó de uma ÁrvoreÁrvore: Nó de uma Árvorein

form

açã

o

pai

pri

mog

ên

ito

pró

xim

o irm

ão

class TArvore{ private: TAlgumTipo inf; // informação TArvore *pai; // pai TArvore *prim; // primogênito TArvore *prox // próximo irmão // ... public: // ... // operações em uma árvore. // ...};

Não é imprescindível, mas pode ajudar na implementação dos métodos.

ponteiros

Page 30: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 30/33

Árvore: ligaçõesÁrvore: ligações

F

K L M

R S

L

F 0

K M 0 0

R 0 S 0 0

vem de E

vai para A

vem de Q

vem de Q

vai para Q

Page 31: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 31/33

Árvore: busca em largura e busca Árvore: busca em largura e busca em profundidadeem profundidade

nível 0

nível 1

nível 2

nível 3

A

B C D E F

G H I J K L M

N O P Q R S

Largura

Pro

fun

did

ad

e

Page 32: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 32/33

Árvore: Busca em LarguraÁrvore: Busca em Largura

Fila

A

B C D E F

G H I J K L M

N O P Q R S

M

1

2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19

ALGORITMO:enfileire o nó raiz da árvore; enquanto existirem nós enfileirados: desenfileire e marque o nó; para todos os nós filhos deste nó marcado: enfileire o nó filho;

A

B

C

D

E

F

G

H

I JK

S

R

Q

P

O

N

M

L

Page 33: ESCOLA DE ENGENHARIA C++ Grafos e Árvores. C++ - Grafos e Árvores Prof. Lincoln Cesar Zamboni 2/33 Instalação Elétrica Pontos, conduítes e fiação.

C++ - Grafos e ÁrvoresC++ - Grafos e Árvores Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 33/33

Busca em ProfundidadeBusca em ProfundidadeA

B C D E F

G H I J K L M

N O P Q R S

1

2

3

4

5

6

7

8

9

10 11

12 13

14

15

16

17 18

19

ALGORITMO:empilhe o nó raiz da árvore; enquanto existirem nós empilhados: desempilhe e marque o nó; para todos os nós filhos deste nó marcado: empilhe o nó filho;

Pilha

A

F

E

D

C

B

G

I

H NJ

R

S

Q

K

L

M

O

P