• Nenhum resultado encontrado

05-ArvoresAVL

N/A
N/A
Protected

Academic year: 2021

Share "05-ArvoresAVL"

Copied!
86
0
0

Texto

(1)

ÁRVORES AVL

Vanessa Braganholo

Estruturas de Dados e Seus Algoritmos

(2)

REFERÊNCIA

Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed.

LTC. Cap. 5

(3)

RECAPITULANDO:

ÁRVORES BINÁRIAS DE BUSCA

Apresentam uma relação de ordem

A ordem é definida pela chave

Operações:

­ inserir ­ consultar ­ excluir

500

300

800

150

400

600

900

(4)

PROBLEMAS COM ÁRVORE BINÁRIA DE BUSCA

(ABB)

Desbalanceamento progressivo

Exemplo:

­ Inserção: 24, 27, 13, 10, 56, 15, 30

24

13

27

10

15

56

(5)

PROBLEMAS COM ABB

Desbalanceamento progressivo

Exemplo:

­ Inserção: 13, 10, 15, 24, 27, 30, 56

13

10

15

24

30

27

56

(6)

PROBLEMAS COM ABB

Desbalanceamento progressivo

Exemplo:

­ inserção: 1, 13, 24, 27, 56

1

13

24

56

27

(7)

CONSEQUÊNCIA

Buscas ficam mais custosas

1

13

24

56

27

(8)

BALANCEAMENTO DE ÁRVORES

Distribuição equilibrada dos nós

Objetivo:

­ Otimizar as operações de consulta

­ Diminuir o número médio de comparações

Distribuição

­ Uniforme

­ árvore balanceada por altura (distância entre as alturas dos nodos não deve exceder um determinado valor)

­ Não uniforme

(9)

POR FREQUÊNCIA X POR ALTURA

Splay

Nós mais acessados ficam perto da raiz

AVL, Rubro-Negras

Diferença das alturas das subárvores

não excedem um determinado valor

500

400

800

550

900

600

50% 12% 25% 4% 5% 4%

800

500

900

400

850

950

(10)

ÁRVORES AVL

A

DELSON-

V

ELSKII E

L

ANDIS (1962)

Uma árvore binária de busca (ABB) é uma AVL quando,

para qualquer um de seus nós, a diferença entre as

alturas de suas subárvore direita e esquerda

(11)

EXERCÍCIO

Verifique quais das ABB são AVL

130

100

150

110

200

120

80

120

100

130

150

200

110

80

(12)

RESPOSTA

AVL

ABB

130

100

150

110

200

120

80

120

100

130

150

200

110

80

Diferença entre alturas das subárvores é 2

(13)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

110

200

120

80

0

0

0

(14)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

200

120

80

0

0

-1

(15)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

110

200

120

80

0

0

0

-1

+1

(16)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

200

120

80

0

0

-1

+1

+1

(17)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

110

200

120

80

0

0

0

-1

+1

+1

-1

(18)

FATOR DE BALANCEAMENTO (FB)

Fator de Balanceamento:

diferença entre altura da subárvore direita e esquerda

FB(n) = altura(n->dir) – altura(n->esq)

130

100

150

110

200

120

80

120

100

130

150

200

110

80

Diferença entre alturas

-1

+1

+1

0

0

-1

0

0

-1

+2

0

+1

(19)

FATOR DE BALANCEAMENTO (FB)

FB precisa ser

-1

,

0

ou

+1

em todos os nós da árvore para que árvore seja AVL.

130

100

150

110

200

120

80

120

100

130

150

200

110

80

Diferença entre alturas

das subárvores é 2 (FB = +2)

-1

+1

+1

0

0

0

-1

0

0

0

-1

+2

0

+1

(20)

EXERCÍCIO

Verifique quais das ABB são AVL, calculando o FB de cada nó:

42

15

88

20

94

27

6

63

71

57

42

15

88

94

27

6

63

42

15

88

20

27

63

71

57

(21)

RESPOSTA

Verifique quais das ABB são AVL, calculando o FB de cada nó:

42

15

88

20

94

27

6

63

71

57

42

15

88

94

27

6

63

42

15

88

20

27

63

71

57

Diferença entre alturas das subárvores é 2

0

0

0

0

-1

+1

0

0

0

-1

0

0

0

0

0

0

0

0

0

0

0

+2

0

-2

-1

(22)

OPERAÇÕES

Inserção e Exclusão devem preservar as propriedades da AVL

0

-1

+1

-1

0

+1

(23)

INSERÇÃO

-1

-1

0

-1

0

0

+1

0

(24)

INSERÇÃO

-1

-1

0

0

+1

+2

0

(25)

INSERÇÃO

-1

-1

0

0

0

+1

+2

0

0

Reestruturar Árvore

(26)

OPERAÇÕES

Quando uma inserção ou exclusão faz com que a árvore perca as propriedades de

árvore AVL, deve-se realizar uma operação de reestruturação chamada

Rotação

Rotação

preserva a ordem das chaves, de modo que a árvore resultante é uma

árvore binária de busca válida e é uma árvore AVL válida

(27)

BALANCEAMENTO DE ÁRVORES AVL POR

ROTAÇÃO

Rotação Simples

­ Direita ­ Esquerda

Rotação Dupla

­ Direita (esquerda-direita) ­ Esquerda (direita-esquerda)

(28)

ROTAÇÃO DIREITA

p u T1 T2 T3 u p T2 T3 T1 Rotação Direita de p

p

é a raiz de transformação

(nó que ficou desregulado)

T1

,

T2

, e

T3

são subárvores

(vazias ou não)

(29)

ROTAÇÃO ESQUERDA

Rotação Esquerda de p

p

é a raiz de transformação

(nó que ficou desregulado)

T1

,

T2

, e

T3

são subárvores

(vazias ou não)

z p T1 T2 T3 p z T2 T3 T1

(30)

ROTAÇÃO DUPLA DIREITA (ESQUERDA-DIREITA)

Rotação Dupla Direita de p

p

é a raiz de transformação

(nó que ficou desregulado)

T1

,

T2

,

T3

e

T4

são subárvores

(vazias ou não)

p u T1 T2 T4 v T3 v p T3 T4 u T1 T2

(31)

ROTAÇÃO DUPLA ESQUERDA (DIREITA-ESQUERDA)

p z T4 T2 T1 y z T3 T4 y T3 p T1 T2 Rotação Dupla Esquerda de p

p

é a raiz de transformação

(nó que ficou desregulado)

(32)

INSERÇÃO DE NÓS EM ÁRVORES AVL

Percorrer a árvore verificando se a chave já existe ou não

­ Em caso positivo, encerrar a tentativa de inserção

­ Caso contrário, a busca encontra o local correto de inserção do novo nó

Verificar se a inclusão tornará a árvore desbalanceada

­ Em caso negativo, o processo termina

­ Caso contrário, efetuar o balanceamento da árvore

Descobrir qual a operação de rotação a ser executada

Executar a rotação

(33)

QUANDO APLICAR?

Fator de Balanceamento FB = h(subarv-direita) – h(subarv-esquerda)

Se FB

positivo

(subárvore da direita é maior):

­ rotações à esquerda

Se FB

negativo

(subárvore da esquerda é maior)

(34)

QUANDO APLICAR?

Nó com FB = -2 e filho com FB = -1 ou 0:

­ rotação do nó com FB = -2 p/ direita

Nó com FB = +2 e filho com FB = +1 ou 0:

­ rotação do nó com FB = +2 p/ esquerda

Nó com FB = -2 e filho com FB = +1:

­ rotação do nó com FB = +1 p/ esquerda, e

­ rotação do nó com FB = -2 p/ direita

Nó com FB = +2 e filho com FB = -1:

­ rotação do nó com FB = -1 p/ direita, e

(35)

QUANDO APLICAR?

Nó com FB = -2 e filho com FB = -1 ou 0:

­ rotação do nó com FB = -2 p/ direita

Nó com FB = +2 e filho com FB = +1 ou 0:

­ rotação do nó com FB = +2 p/ esquerda

Nó com FB = -2 e filho com FB = +1:

­ rotação do nó com FB = +1 p/ esquerda, e

­ rotação do nó com FB = -2 p/ direita

Nó com FB = +2 e filho com FB = -1:

­ rotação do nó com FB = -1 p/ direita, e

­ rotação do nó com FB = +2 p/ esquerda

Mesmo sinal: rotação simples

(36)

ROTAÇÃO SIMPLES DIREITA

Nó com FB = -2 e filho com FB = -1 ou 0:

(37)

ROTAÇÃO DIREITA

p u T1 T2 T3 u p T2 T3 T1 Rotação Direita de p

p

é a raiz de transformação

(nó que ficou desregulado)

T1

,

T2

,

T3

e

T4

são subárvores

(vazias ou não)

(38)

120

110 150

100

80

130 200

(39)

-1

0

0

0

-2

-1

0

EXEMPLO 1: ROTAÇÃO DIREITA

120

110 150

100

80

130 200

Nó com FB = -2 e filho com FB = -1

ou 0

=

(40)

-1

0

0

0

-2

-1

0

EXEMPLO 1: ROTAÇÃO DIREITA

120 110 150 100 80 130 200 p u T1 T2 T3 u p T2 T3 T1 Rotação Direita

p

é a raiz de

transformação

(nó que ficou

desregulado)

(41)

-1

0

0

0

-2

-1

0

EXEMPLO 1: ROTAÇÃO DIREITA

120 110 150 100 80 130 200 p u T1 T2 T3 u p T2 T3 T1 Rotação Direita

p

u

(42)

-1

0

0

0

-2

-1

0

EXEMPLO 1: ROTAÇÃO DIREITA

120 110 150 100 80 130 200 p u T1 T2 T3 u p T2 T3 T1 Rotação Direita

p

u

-1

0

0

0

0

0

0

120 100 150 80 110 130 200

p

u

(43)

42 15 88 6 27

-1

0

0

0

0

Inserir 4 42 15 88 6 27

-2

0

-1

-1

0

4

0

EXEMPLO 2: INSERIR 4

(44)

EXEMPLO 2: ROTAÇÃO DIREITA

42 15 88 6 27

-2

0

-1

-1

0

4

0

p u T1 T2 T3 u p T2 T3 T1 Rotação Direita 15 6 88 4 27

0

0

-1

0

0

0

Rotação Direita de 42 42

(45)

IMPLEMENTAÇÃO

ROTAÇÃO DIREITA

p u T1 T2 T3 u p T2 T3 T1 Rotação Direita

/* representação dos nós de Árvore ALV */

typedef struct pNoA { TInfo info;

struct pNoA* esq; struct pNoA* dir; } pNoA; pNodoA* rotacao_direita(pNoA* p){ pNoA *u; u = p->esq; p->esq = u->dir; u->dir = p; p = u; return p; }

(46)

ROTAÇÃO SIMPLES ESQUERDA

Nó com FB = +2 e filho com FB = +1 ou 0:

(47)

ROTAÇÃO ESQUERDA

Rotação Esquerda de p

p

é a raiz de transformação

(nó que ficou desregulado)

T1

,

T2

,

T3

e

T4

são subárvores

(vazias ou não)

z p T1 T2 T3 p z T2 T3 T1

(48)

120

100 130

150

200

80 110

(49)

120 100 130 150 200 80 110

+1

0

0

0

0

+2

+1

EXEMPLO 1: ROTAÇÃO ESQUERDA

Nó com FB = +2 e filho com FB =

+1 ou 0

=

(50)

Rotação Esquerda de 130 120 100 150 80 110 130 200 Rotação Esquerda z p T1 T2 T3 p z T2 T3 T1 120 100 130 150 200 80 110

+1

0

0

0

0

+2

+1

p

z

p

z

EXEMPLO 1:

ROTAÇÃO ESQUERDA

0

0

0

0

0

0

0

(51)

42 15 88 94 67

+1

0

0

0

0

Inserir 90 42 15 88 94 67

+2

+1

0

0

1

90

0

EXEMPLO 2: INSERIR 90

(52)

88 42 94 90 67

0

-1

0

0

0

15

0

Rotação Esquerda de 42 42 15 88 94 67

+2

+1

0

0

1

90

0

EXEMPLO 2:

ROTAÇÃO ESQUERDA

Rotação Esquerda z p T1 T2 T3 p z T2 T3 T1

(53)

IMPLEMENTAÇÃO

ROTAÇÃO ESQUERDA

/* representação dos nós de Árvore ALV */

typedef struct pNoA { TInfo info;

struct pNoA* esq; struct pNoA* dir; } pNoA; pNodoA* rotacao_esquerda(pNodoA *p){ pNodoA *z; z = p->dir; p->dir = z->esq; z->esq = p; p = z; return p; } Rotação Esquerda z p T1 T2 T3 p z T2 T3 T1

(54)

ROTAÇÃO DUPLA DIREITA

(ESQUERDA-DIREITA)

Nó com FB = -2 e filho com FB = +1:

­ rotação do nó com FB = +1 p/ esquerda, e

(55)

Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2

ROTAÇÃO DUPLA DIREITA

(ESQUERDA-DIREITA)

Rotação Direita em p

(56)

120 110 150 80 100 130 200

-1

-2

+1

0

0

0

0

(57)

120 110 150 80 100 130 200

-1

-2

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA DIREITA

p

u

v

Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p

+1

(58)

120 110 150 80 100 130 200

-1

-2

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA DIREITA

p

u

v

120 110 150 100 80 130 200 Rotação Esquerda em u

-1

-2

-1

0

0

0

0

Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p

+1

(59)

120 110 150 80 100 130 200

-1

-2

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA DIREITA

p

u

v

120 110 150 100 80 130 200

p

v

u

Rotação Esquerda em u Rotação Direita em p Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p

+1

(60)

120 110 150 80 100 130 200

-1

-2

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA DIREITA

p

u

v

120 110 150 100 80 130 200

p

v

u

120 100 150 80 110 130 200 Rotação Esquerda em u Rotação Direita em p Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p

p

v

u

+1

(61)

42 15 88 27 6

-1

0

0

0

0

Inserir 34 42 15 88 27 6

-2

0

+1

+1

0

34

0

EXEMPLO 2: INSERIR 34

(62)

42 15 88 27 6

-2

0

+1

+1

0

34

0

0

42 27 88 34 15

-2

0

-1

-1

6

0

EXEMPLO 2: ROTAÇÃO

DUPLA DIREITA

Rotação Esquerda em u

p

u

v

Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p

(63)

42 15 88 27 6

-2

0

+1

+1

0

34

0

0

42 27 88 34 15

-2

0

-1

-1

6

0

EXEMPLO 2: ROTAÇÃO

DUPLA DIREITA

Rotação Esquerda em u

p

u

v

Rotação Esquerda em u p u T1 T2 T4 v T3 v p T3 T4 u T1 T2 p v T3 T1 T4 u T2 Rotação Direita em p Rotação Direita em p 27 15 42 34

0

0

-1

0

6

0

88

0

p

v

u

p

v

u

(64)

IMPLEMENTAÇÃO

ROTAÇÃO DUPLA DIREITA

pNoA* rotacao_dupla_direita (pNoA* p){

rotacao_esquerda(p->esq);

rotacao_direita(p);

return p;

}

Rotação Dupla Direita p u T1 T2 T4 v T3 v p T3 T4 u T1 T2

(65)

ROTAÇÃO DUPLA ESQUERDA

(DIREITA-ESQUERDA)

Nó com FB = +2 e filho com FB = -1:

­ rotação do nó com FB = -1 p/ direita, e

(66)

p z T4 T2 T1 y T3 Rotação Esquerda Em p p y T2 T3 T1 z T3 y z T3 T4 p T1 T2 Rotação Direita Em z

ROTAÇÃO DUPLA ESQUERDA

(DIREITA-ESQUERDA)

(67)

120 100 130 200 150 80 110

+1

+2

-1

0

0

0

0

(68)

120 100 130 200 150 80 110

+1

+2

-1

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA ESQUERDA

Rotação Direita Em z

p

z

y

p z T4 T2 T1 y T3 Rotação Esquerda Em p p y T2 T3 T1 z T3 y z T3 T4 p T1 T2 Rotação Direita Em z

(69)

120 100 130 200 150 80 110

+1

+2

-1

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA ESQUERDA

Rotação Direita Em z

p

z

y

p z T4 T2 T1 y T3 Rotação Esquerda Em p p y T2 T3 T1 z T3 y z T3 T4 p T1 T2 Rotação Direita Em z 120 100 130 150 200 80 110

p

y

z

(70)

120 100 130 200 150 80 110

+1

+2

-1

0

0

0

0

EXEMPLO 1: ROTAÇÃO

DUPLA ESQUERDA

Rotação Direita Em z

p

z

y

p z T4 T2 T1 y T3 Rotação Esquerda Em p p y T2 T3 T1 z T3 y z T3 T4 p T1 T2 Rotação Direita Em z 120 100 130 150 200 80 110 120 100 150 80 110 130 200

p

y

z

y

z

p

Rotação Esquerda Em p

(71)

IMPLEMENTAÇÃO

ROTAÇÃO DUPLA ESQUERDA

pNoA rotacao_dupla_esquerda (pNoA *p){

rotacao_direita(p->dir);

rotacao_esquerda(p);

return p;

}

p z T4 T2 T1 y T3 Rotação Dupla Esquerda y z T3 T4 p T1 T2

(72)

EXERCÍCIOS

Inserir nós com as seguintes chaves em uma árvore AVL, refazendo a árvore quando

houver rotação e anotando as rotações realizadas:

(73)

INSERÇÃO DE NÓS EM ÁRVORES AVL:

ALGUNS PROBLEMAS

Como saber se a árvore está balanceada?

­ Verificando se existe um nó “desregulado”

Como saber se um nó está desregulado?

­ Determina-se as alturas de suas sub-árvores e subtrai-se uma da outra

Procedimento muito lento!

Como ser mais eficiente?

­ Para cada nó v de uma árvore, armazena-se uma variável fb que registra essa diferença (o livro usa

(74)

MANUTENÇÃO DE FB:

INSERÇÃO À DIREITA DE UM NÓ V

Se, antes da inclusão,

fb(v) = -1

, então fb(v) se tornará

0

­ Altura da árvore não foi alterada

­ Por consequência, altura dos outros nós no caminho até a raiz não se altera também

120 100 150

-1

120 100 150

0

0

0

0

(75)

MANUTENÇÃO DE FB:

INSERÇÃO À DIREITA DE UM NÓ V

Se, antes da inclusão,

fb(v) = 0

, então fb(v) se tornará

+1

­ Altura da árvore foi modificada

­ Por consequência, altura dos outros nós no caminho até a raiz pode ter sido alterada também.

­ Repetir o processo (recursivamente), com v substituído por seu pai. 120 100 150

0

155

0

120 100 150

+1

155

+1

0

0

0

(76)

MANUTENÇÃO DE FB:

INSERÇÃO À DIREITA DE UM NÓ V

Se, antes da inserção,

fb(v) = +1

, então fb(v) se tornará

+2

­ Esse caso só ocorre por propagação de inserção em nó com fb = 0

­ Altura da árvore foi modificada e o nó está desregulado

­ Rotação correta deve ser empregada.

­ Como a árvore será redesenhada, não é necessário verificar os outros nós. 120 150

0

+1

120 150

+1

+2

(77)

MANUTENÇÃO DE FB:

INSERÇÃO À ESQUERDA DE UM NÓ V

Se, antes da inserção,

fb(v) = +1

, então fb(v) se tornará

0

­ Altura da árvore não foi alterada

­ Por consequência, altura dos outros nós no caminho até a raiz, não se altera também

120 100 150

+1

120 100 150

0

0

0

0

(78)

MANUTENÇÃO DE FB:

INSERÇÃO À ESQUERDA DE UM NÓ V

Se, antes da inserção,

fb(v) = 0

, então fb(v) se tornará

-1

­ Altura da árvore foi modificada

­ Por consequência, altura dos outros nós no caminho até a raiz, pode ter sido alterada também

­ Repetir o processo (recursivamente), com v substituído por seu pai 120 100 150

0

0

0

120 100 150

-1

0

+1

0

(79)

MANUTENÇÃO DE FB:

INSERÇÃO À ESQUERDA DE UM NÓ V

Se, antes da inserção,

fb(v) = -1

, então fb(v) se tornará

-2

­ Esse caso só ocorre por propagação de inserção em nó com fb = 0 ­ Altura da árvore foi modificada e o nó está desregulado

­ Rotação correta deve ser empregada

­ Como a árvore será redesenhada, não é necessário verificar os outros nós

120 100 140

0

-1

120 100 140

-1

-2

0

(80)

REMOÇÃO DE NÓS EM ÁRVORES AVL

Caso parecido com as inclusões

(81)

EXEMPLO 1: REMOÇÃO DE 29

23 15 29 12

0

-1

-2

23 15 12

0

0

0

15 12 23 Rotação Direita de 23

Nó com FB = -2 e filho com FB = -1 ou 0:

rotação do nó com FB = -2 p/ direita

0

-1

-1

(82)

EXEMPLO 2:

REMOÇÃO DE 30

23 15 30 12 19 16 25 23 15 12 19 16 25

0

-1

-2

0

+1

Rotação Esquerda de 15 23 19 15 16 25 12

Nó com FB = -2 e filho com FB = +1:

rotação do nó com FB = +1 p/ esquerda, e

rotação do nó com FB = -2 p/ direita

0

-1

-1

0

(83)

EXEMPLO 2:

REMOÇÃO DE 30 (CONT.)

Rotação Direita de 23 23 19 15 16 25 12 19 15 16 23

0

0

0

0

12

0

25

0

(84)

REMOÇÃO DE NÓ INTERMEDIÁRIO

Mesmo raciocínio

Lembrete: se nó excluído tem 2 filhos, substituir pelo nó de maior chave da subárvore

esquerda, seguindo o algoritmo de remoção em ABB

(85)

EXERCÍCIO

Remover os nós de chave 400, 140, 120,

130, 150, 200, 250, 350

220

120

300

100

150

260

400

80

110

130

200

250

270

350

140

(86)

AGRADECIMENTOS

Material baseado nos slides de Renata Galante, UFRGS

Material baseado nos slides disponíveis em

Referências

Documentos relacionados

“De outra parte, em se tratando de arguição de negativa de prestação jurisdicional, o prequestionamento tem de estar revelado nos embargos de declaração, ou seja, a parte

A força aplicada para rotação será tanto menor, quanto maior for a distancia que separa o ponto de aplicação da força do eixo de rotação (Uma força mais afastada (distante)

Questões diante das quais responde que: “Somente através do filosofar mesmo, não através de definições e demonstrações científicas, isto é, não se deixa al- cançar através

Para poder determinar a concordância entre o RIDA qLine ® Allergy e um sistema de referência IgE quantitativo (Phadia ImmunoCap, Thermo Scientific, EUA), ambos os sistemas

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

Deck do observatório Catapulta gigante Salão de jogos Fonte de limonada Cozinha Quarto do Andy Deck principal Piscina transparente Quarto cheio de almofadas Quarto do Terry

Apesar da situação nesse nível mais macro da proteção da criança e do adolescente apresente diversos problema, pelo que me foi relatado pelos conselheiros sobre a

Constitui objeto do presente Edital a seleção e contratação de sociedade empresária especializada na execução de serviços de engenharia elétrica, visando a