- PowerPoint PPT Presentation

About This Presentation
Title:

Description:

... uma rvore bin ria de busca com as palavras da seguinte frase: O t tulo de uma das m sicas de sucesso do cantor Bruno Mars ``The Lazy Song . – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 51
Provided by: Adol72
Category:
Tags: bruno | mars

less

Transcript and Presenter's Notes

Title:


1
Grafos
  • Árvores (introdução)
  • Anjolina Grisi de Oliveira
  • Obs vários slides foram cedidos por
  • Adolfo Almeida Duran (UFBA)

2
Árvores
  • Uma árvore é um grafo conexo não orientado e sem
    circuitos simples

3
  • Uma floresta é um grafo cujas componentes conexas
    são árvores

4
  • Teorema
  • Um grafo não orientado é uma árvore se e somente
    se existe um único caminho simples entre qualquer
    par de vértices.
  • Prova
  • Assuma que G é uma árvore. Logo G é um grafo
    conexo e sem circuitos simples. Sejam x e y dois
    nós de G. Logo, como G é conexo, existe um
    caminho simples entre x e y. Adicionalmente, esse
    caminho é único, pois se existisse um outro
    caminho, o caminho formado através da combinação
    do caminho de x até y com o segundo caminho
    começando por y e chegando a x formaria um
    circuito, o que contraria a hipótese de que G é
    uma árvore.

5
  • Árvore EnraizadaUma árvore T (V,E) é
    denominado enraizada quando algum vértice v é
    escolhido como especial. Esse vértice v é a raiz
    da árvore.

6
  • Árvore Enraizada
  • Usualmente representamos graficamente a raiz no
    topo. Podemos transformar uma árvore sem raiz
    numa árvore enraizada simplesmente escolhendo um
    vértice como raiz.

7
  • Árvore Enraizada

ancestrais de je,c descendentes de
ji,k pai de je filhos de ji,k nível
de j2 altura da árvore 3 folhasb,a,i,k,f,h,
d
Raiz c
8
  • Árvore Enraizada

O nível de um vértice é o tamanho do único
caminho da raiz até ele. nível de j2 A
altura da árvore é o maior nível entre os nós. É
o tamanho do maior caminho da raiz até uma das
folhas. altura da árvore 3
Raiz c
9
  • Árvore EnraizadaA raiz de uma árvore não possui
    pai, e todo vértice v diferente de r, possui um
    único pai.
  • Uma folha é um vértice que não possui filhos.
  • Vértices que possuem filhos são chamados de
    vértices internos.
  • Quando a raiz é o único nó do grafo ela é uma
    folha.
  • O nível da raiz é zero, de seus filhos é 1. O
    nível de um nó é igual ao nível de seu pai mais
    um.
  • Para dois vértices irmãos v e w,
    nível(v)nível(w).
  • A altura de uma árvore é o valor máximo de
    nível(r) para todo vértice v de T.

10
  • Subárvore Seja T(V,E) uma árvore enraizada e v
    ? V.
  • Uma subárvore Tv de T é uma árvore enraizada cuja
    raiz é v, definida pelo subgrafo induzido pelos
    descendentes de v mais o próprio v.
  • A subárvore de raiz v é única para cada v ? V.

s
v
u
v
t
x
w
x
w
11
  • Árvore m-ária
  • Uma árvore enraizada é chamada de m-ária se todo
    nó interno não possui mais que m filhos. A árvore
    é chamada árvore m-ária cheia se todo nó interno
    possui exatamente m filhos. Uma árvore m-ária com
    m2 é chamada de árvore binária.

Binária
3-ária
12
  • Árvore m-ária
  • A árvore é chamada árvore m-ária cheia se todo nó
    interno possui exatamente m filhos. Uma árvore
    m-ária com m2 é chamada de árvore binária.

s
u
v
t
x
z
-
w
Binária cheia
13
  • Árvore m-ária
  • Uma árvore enraizada m-ária de altura h é
    balanceada se todas as folhas estão no nível h ou
    h-1.

14
  • Árvore Balanceada?

h3 Nível(a) 1 Não está balanceada
15
  • Árvore Enraizada OrdenadaNa definição de árvore
    enraizada, é irrelevante a ordem em que os filhos
    de cada vértice v são considerados.
  • Caso a ordenação seja relevante a árvore é
    denominada enraizada ordenada.
  • Assim, para cada vértice v pode-se identificar o
    primeiro filho de v (o mais a esquerda), o
    segundo filho (o segundo mais a esquerda), etc.

16
  • Árvores

17
  • Árvore enraizada ordenada
  • No caso de árvores binárias, se um nó interno
    possui dois filhos, temos o filho da esquerda e o
    filho da direita
  • A árvore cuja raiz é o filho da esquerda de um
    vértice é chamada de subárvore da esquerda desse
    vértice.

b
a
e
b
d
c
d
e
Subárvore da esquerda de a
18
  • Teorema
  • Uma árvore com n nós possui n-1 arestas.

Prova Definimos uma bijeção entre as arestas e os
vértices diferentes da raiz, de forma que
associamos cada vértice terminal de uma aresta
com ela própria. Como existem n-1 nós além da
raiz, logo existem n-1 arestas na árvore.
19
  • Teorema
  • Uma árvore m-ária cheia com i nós internos contem
    n mi 1 nós.

Prova Cada vértice com exceção da raiz é filho de
um nó interno. Como cada um dos i nós internos
possui m filhos, existem mi nós na árvore além da
raiz. Consequentemente, a árvore contem n mi
1 nós.
20
  • Teorema
  • Uma árvore m-ária cheia com
  • n nós possui i(n-1)/m nós internos e
    l ((m-1)n 1)/m folhas
  • i nós internos possui n mi 1 nós e f (m-1)i
    1 folhas
  • f folhas possui n (mf 1)/ (m-1) nós e i
    (f-1)/(m-1) nós internos

21
  • Teorema - Prova
  • Uma árvore m-ária cheia com
  • n nós possui i(n-1)/m nós internos e
    l ((m-1)n 1)/m folhas
  • Vimos que n mi 1, logo i (n-1)/m.
  • Temos também que n i f, onde f é o número de
    folhas.
  • Logo, f n i
  • f n (n-1)/m (mn (n-1))/m (mn n 1)/m
  • ((m-1)n 1)/m

22
  • Exemplo
  • Suponha que alguém iniciou uma corrente de
    cartas. Cada pessoa que recebe a carta é
    convidada a enviá-la para outras quatro pessoas.
    Quantas pessoas receberam a carta, incluindo a
    pessoa que iniciou a corrente, se nenhuma pessoa
    recebeu mais que uma carta e se a corrente acabou
    depois que 64 pessoas leram a carta e não mais a
    enviaram? Quantas
  • pessoas enviaram a carta?

23
  • Solução
  • A corrente pode ser representada usando uma
    árvore 4-ária. Os nós internos correspondem às
    pessoas que enviaram a carta, e as folhas às
    pessoas que não a enviaram.

Temos que 64 pessoas não enviaram a carta. Assim
o número de folhas f é igual a 64.
Temos n i f e n mi 1.
Logo 64 i 4.i 1 gt 3.i 63 gt i 21
Resposta 21 pessoas enviaram a carta
24
  • Teorema
  • Existem no máximo mh folhas em uma árvore m-ária
    de altura h.
  • Prova por indução sobre a altura

Cada uma dessas subárvores possui altura no
máximo h-1. Portanto, pela H.I. existem no máximo
mh-1 folhas em cada uma delas. Como existem no
máximo m dessas subárvores, cada uma com no
máximo mh-1 folhas, então existem no máximo
m.mh-1 mh folhas.
? h-1
? h-1
? h-1
25
  • Aplicações Árvore binária de busca
  • Busca de itens numa lista.
  • Cada vértice é rotulado por uma chave de forma
    que a chave de um vértice é maior do que as
    chaves de todos os nós da subárvore da esquerda e
    menor do que as chaves dos nós da subárvore da
    direita.

55
30
80
90
35
20
45
32
26
  • Construindo uma árvore binária de busca
  • Procedimento recursivo que recebe uma lista de
    itens.
  • O primeiro item da lista é a raiz da árvore.
  • Para adicionar um novo item compare-o com os nós
    que já estão na árvore comece pela raiz e siga
    para a esquerda se o item é menor que o item que
    rotula o nó que está sendo comparado ou siga para
    a direita, caso contrário. Quando o novo item é
    menor que um item cujo nó não tem filho da
    esquerda, adicione-o como filho da esquerda desse
    nó. Analogamente, quando o item é maior que o
    item cujo nó não tem filho da direita, adicione-o
    como filho da direita desse nó,

27
  • Construindo uma árvore binária de busca
  • Construa uma árvore binária de busca a partir da
    seguinte lista
  • 55,30,80,90,35,32,20,45

28
  • Exemplo árvore binária de busca
  • Use a ordem alfabética para construir uma árvore
    binária de busca com as palavras da seguinte
    frase
  • O título de uma das músicas de sucesso do cantor
    Bruno Mars é The Lazy Song.

29
  • Caminhado em árvores enraizadas e ordenadas
  • Procedimento universal para ordenar os seus nós
  • Rotule a raiz com o inteiro 0. Em seguida
    rotule seus k filhos da esquerda para direita com
    1,2,3,....,k.
  • Para cada vértice v no nível n com rótulo A,
    rotule seus k filhos da esquerda para a direita
    com A.1, A.2, ...A.k.

30
Exemplo
0
3
1
2
1.1
3.1
1.2
3.2
3.3
1.1.1
1.1.2
3.1.2
3.1.1
1.1.2.1
1.1.2.3
1.1.2.2
31
  • Procedimento universal para ordenar os nós
  • Podemos ordenar os nós usando a ordem
    lexicográfica de seus rótulos.
  • x1.x2....xn lt y1.y2....ym se
  • existe um i, 0 ? i ? n, com x1 y1, x2y2,
    ...xi-1 yi-1 e xilt yi ou
  • n lt m e xiyi, para i 1,2,...,n.

32
  • Caminhamento em pré-ordem
  • Seja T uma árvore enraizada e ordenada com raiz
    r. Se T possui apenas r, então o caminhamento em
    pré-ordem de T é r. Caso contrário, sejam T1,
    T2,... Tn as subárvores de r da esquerda para a
    direita. O caminhamento em pré-ordem começa
    visitando r e continua fazendo um caminhamento em
    pré-ordem em T1, em seguida em T2, e assim
    sucessivamente até que Tn seja percorrida em
    pré-ordem.

33
Exemplo
a
d
b
c
e
g
f
i
h
j
k
m
l
p
o
n
34
  • Caminhamento em ordem
  • Seja T uma árvore enraizada e ordenada com raiz
    r. Se T possui apenas r, então o caminhamento em
    ordem de T é r. Caso contrário, sejam T1, T2,...
    Tn as subárvores de r da esquerda para a direita.
    O caminhamento em ordem começa fazendo um
    percorrendo em ordem em T1 em ordem, em seguida
    visita r, e continua fazendo um caminhamento em
    ordem em T2, em T3 , e finalmente em Tn .

35
  • Caminhamento em pós-ordem
  • Seja T uma árvore enraizada e ordenada com raiz
    r. Se T possui apenas r, então o caminhamento em
    pós-ordem de T é r. Caso contrário, sejam T1,
    T2,... Tn as subárvores de r da esquerda para a
    direita. O caminhamento em pós-ordem começa
    percorrendo T1 em pós-ordem, em seguida T2, T3 ,
    ... Tn , e finaliza visitando r.

36
  • Notação infixa, pré-fixa e pós-fixa
  • Podemos representar expressões complicadas, tais
    como proposições compostas, combinações de
    conjuntos, e expressões aritméticas usando
    árvores enraizadas ordenadas.
  • O nós internos representam operações
  • As folhas representam as variáveis ou valores
  • As operações são executadas na subárvore da
    esquerda e depois na direita

37
  • Notação infixa exemplo
  • Árvore que representa a expressão
  • ((xy)2) ((x-4)/3)
  • A árvore binária é construída de baixo para
    cima.
  • Construímos a subárvore (xy), depois a
    incorporamos como parte de uma subárvore maior
    que representa (xy)2.




2
x
y
x
y
38
  • Notação infixa ((xy)2) ((x-4)/3)
  • Do mesmo modo a subárvore (x-4) é construída e
    incorporada à subárvore maior de (x-4)/3




2
x
y
x
y
/
-
-
3
x
4
x
4
39
  • Notação infixa ((xy)2) ((x-4)/3)
  • Por último as subárvore de ((xy)2) e de
  • ((x-4)/3) são combinadas para formar a expressão
    toda



/

2
-
3
x
y
x
4
40
  • Caminhamento em ordem
  • ((xy)2) ((x-4)/3)



/

2
-
3
x
y
x
4
41
  • Qual é a forma pré-fixa da expressão
  • ((xy)2) ((x-4)/3) ? (notação polonesa)
  • Fazemos um caminhamento em pré-ordem
  • x y 2 / - x 4 3



/

2
-
3
x
y
x
4
42
  • Qual o valor da expressão
  • - 2 3 5 / 2 3 4 ?

- 2 3 5 /
2 3
4
- 2 3 5 /
8
4
6
5 2
-
- 2 3 5
/ 8 4
- 6 5

2
- 2 3 5
2
2
1

2 3
5 2
-
2
1

6
5 2
-
3
43
  • Qual é a forma pós-fixa da expressão
  • ((xy)2) ((x-4)/3) ? Fazemos um caminhamento
    em pós-ordem
  • x y 2 x 4 3 /



/

2
-
3
x
y
x
4
44
  • Qual o valor da expressão em notação pós-fixa?
  • 7 2 3 - 4 9 3 /

7
6
- 4 9 3 /
1 4 9 3 /
1 9 3 /
1 3
4
45
  • Encontre a árvore enraizada ordenada que
    representa a seguinte proposição composta
  • ((p?q))?(p v q)



?
?
p
q
p
q
v
v






?
?
p
q
q
p
q
p
p
q
46
  • Forneça a notação pré-fixa e pós-fixa dessa
    expressão ((p?q))?(p v q)

Pré-fixa ??pqvpq
?
Pós-fixa pq?pqv?
v

O caminhamento em ordem colocaria a negação
imediatamente após o seu operando. Isso acontece
sempre com os operadores unários.


?
q
p
p
q
A expressões em notação pré-fixa e pós-fixa não
são ambíguas. Por esse motivo, são utilizadas em
computação. Especialmente na construção de
compiladores
47
  • Desenhe a árvore enraizada ordenada da seguinte
    expressão aritmética escrita usando a notação
    pré-fixa.
  • - 5 3 2 1 4
  • Em seguida, escreva a mesma expressão em notação
    infixa.



4
((((5-3)2)1)4)
1

-
2
5
3
48
  • Mais aplicações de árvores 1 Árvores de decisão
  • 2 Código de prefixo
  • Pode ser usado em compactação de arquivos ou
    criptografia
  • Considere o problema em que letras são
    codificadas por sequências de bits
  • Uma maneira de garantir que nenhuma sequência de
    bits corresponde a mais de uma sequência de
    letras, é escolher códigos de forma que a cadeia
    de bits para uma letra nunca ocorre como prefixo
    de uma cadeia de bits de outra letra.

49
  • Construa a árvore binária com os códigos de
    prefixo que representam os seguintes esquemas de
    codificação 1) a11, e0, r101, s100
  • 2) a1,e01,r001, s0001, n00001

1
0
e
1
0
a
1
0
s
r
50
  • 2) a1,e01,r001, s0001, n00001

0
1
0
a
1
1
e
0
r
1
s
Write a Comment
User Comments (0)
About PowerShow.com