• Nenhum resultado encontrado

aula 12 - Árvores AVL

N/A
N/A
Protected

Academic year: 2021

Share "aula 12 - Árvores AVL"

Copied!
117
0
0

Texto

(1)

Estrutura de Dados

11 – Árvores AVL

Engenharia de Computação - Unipampa

(2)

• Revisão – Árvores Binárias

• Introdução

• Representação

• Inserção

• Remoção

Tópicos

(3)

• Uma árvore em que cada nodo tem zero, um ou dois

filhos, ou seja, de no máximo grau dois.

• Uma árvore binária é:

• Uma árvore vazia; ou

• Um nodo raiz com duas subárvores:

- a subárvore da direita (sad)

- a subárvore da esquerda (sad)

• ABB tem uma relação de ordem nas subárvores

Engenharia de Computação - Unipampa

Revisão

(4)

• Problemas com ABB:

• Desbalanceamento progressivo

• Exemplo: - inserção: 1, 13, 24, 27, 56

Revisão

1

13

24

27

56

Alternativa de solução:

• Árvores balanceadas

• AVL

(5)

• Árvores de altura balanceada ou de altura equilibrada

foram introduzidas em 1962 por Adelson-Velskii e Landis,

também conhecidas como árvores AVL.

• Devido ao balanceamento da árvore, as operações de

busca, inserção e remoção em uma árvore são otimizadas.

• O balanceamento mais comum e mais simples é aquele

que pressupõe uma distribuição uniforme dos acessos às

várias chaves. Com esse pressuposto, o balanceamento

passa a ser por altura, ou seja, busca-se minimizar a altura

da árvore, fazendo com que os nós sejam compactados

juntos a raiz.

Engenharia de Computação - Unipampa

Introdução

(6)

• Em razão do grande esforço exigido para manter uma

árvore completamente balanceada, que pode

não ser compensado pelo ganho em eficiência no

processo de busca, assumem importância as

árvores que apresentam balanceamento não

completo, mas sim, próximo dele.

• Estas árvores beneficiam o processo de busca,

exigindo

manutenção

pouco

onerosa

do

balanceamento.

• As árvores AVL entram nesse contexto.

Introdução

(7)

•  

Engenharia de Computação - Unipampa

Árvore AVL

(8)

• Exemplo:

(9)

• O fator de balanceamento ou fator de

equilíbrio de um nó a em uma árvore binária é

definido como sendo onde e são as alturas

das subárvores esquerda e direita de A,

respectivamente.

• Para qualquer nó a numa árvore AVL, o fator

de balanceamento assume o valor -1, 0 ou +1

• O fator de balanceamento de uma folha é zero.

Engenharia de Computação - Unipampa

Fator de Balanceamento

(10)
(11)

Engenharia de Computação - Unipampa

Fator de Balanceamento

(12)
(13)

Engenharia de Computação - Unipampa

Fator de Balanceamento

(14)

• Verifique os fatores de balanceamento de cada

nodo.

Exercícios de fixação

130 150 100 200 120 80 120 130 100 200 110 80

(15)

• Verifique os fatores de balanceamento de cada

nodo.

Engenharia de Computação - Unipampa

Exercícios de fixação - Respostas

01/02/2018 15 130 150 100 200 120 80 110 120 130 100 200 110 80 150

+1

-1

-1

0

0

0

0

0

0

+1

-2

0

-1

AVL

Não AVL

(16)

• Verifique os fatores de balanceamento de cada

nodo.

Exercícios de fixação

42 88 15 63 27 6 94 20 57 71 42 88 15 6 42 88 15 63 27 20 57 71

(17)

• Verifique os fatores de balanceamento de cada

nodo.

Engenharia de Computação - Unipampa

Exercícios de fixação - Respostas

01/02/2018 17 42 88 15 63 27 6 94 20 57 71 42 88 15 63 27 6 94 42 88 15 63 27 20 57 71

0

0

0

0

0

0

0

AVL: completamente balanceada

0

0

0

0

+1

-1

0

0

0

0

0

0

0

+1

-2

0

+2

(18)

• Como manter uma árvore AVL sempre

balanceada após uma inserção ou exclusão?

• Através de uma operação de ROTAÇÃO

• São quatro operações

• Característica da operação

• preservar a ordem das chaves

• basta uma execução da operação de rotação para

tornar a árvore AVL novamente

(19)

• O processo de rebalanceamento é conduzido utilizando 4 tipos de rotações: Esquerda, Direita, Esquerda-Direita, Direita-Esquerda

• Esquerda e Direita são simétricas entre si assim como Esquerda-Direita e Direita-Esquerda

• As rotações são caracterizadas pelo ancestral mais próximo A do novo nó inserido Y

• Direita: Y inserido na subárvore esquerda da subárvore esquerda de A

• Esquerda-Direita: Y inserido na subárvore direita da subárvore esquerda de A • Esquerda: Y inserido na subárvore direita da subárvore direita de A

• Direita-Esquerda: Y inserido na subárvore esquerda da subárvore direita de A

• Seja B o filho de A no qual ocorreu a inserção de Y

• Direita (A = +2; B = +1) Esquerda (A = -2; B = -1)

• Esquerda-Direita (A = +2; B = -1) Direita-Esquerda(A = -2; B = +1)

Engenharia de Computação - Unipampa

Rotações

(20)

Rotação Direita

• Toda vez que uma subárvore fica com um fator:

• positivo e sua subárvore da esquerda também tem um 

fator positivo

ROTAÇÃO À DIREITA

110

100

80

+2

+1

(21)

Engenharia de Computação - Unipampa

Rotação Direita

01/02/2018 21

120

110

150

100

80

130

200

120

110

150

100

80

130

200

+1

0

0

0

+2

+1

0

(22)

Rotação Direita

120

110

Rotação Direita

150

100

80

130

200

120

100

150

80

110

130

200

+1

+2

0

0

0

0

0

0

0

0

0

0

0

+1

(23)

Engenharia de Computação - Unipampa

Rotação Direita

01/02/2018 23

A

B

+2

+1

a

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->esq; a->esq = aux->dir; aux->dir = a; a = aux;

T2

T3

T1

T1

,

T2

,

T3

e

T4

são subárvores

(vazias ou não)

(24)

Rotação Direita

A

B

a

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->esq; a->esq = aux->dir; aux->dir = a; a = aux;    

T2

T3

T1

aux

(25)

Engenharia de Computação - Unipampa

Rotação Direita

01/02/2018 25

A

B

a

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->esq; a->esq = aux->dir; aux->dir = a; a = aux;    

T2

T3

T1

aux

(26)

Rotação Direita

A

B

a

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->esq; a->esq = aux->dir; aux->dir = a; a = aux;    

T2

T3

T1

aux

(27)

Engenharia de Computação - Unipampa

Rotação Direita

01/02/2018 27

A

B

a

Assumindo a e aux ponteiros para as

subárvores com raiz A e B: aux = a->esq; a->esq = aux->dir; aux->dir = a; a = aux;    

T2

T3

T1

aux

(28)

Rotação Direita

110

100

80

+2

0

+1

Rotação Direita

100

80

110

0

0

0

(29)

Engenharia de Computação - Unipampa

Rotação Direita

01/02/2018 29

42

15

88

6

27

+1

0

0

0

0

Incluir

4

42

15

88

6

27

+2

0

+1

+1

0

4

0

(30)

Rotação Direita

Rotação

Direita

42

15

88

6

27

+2

0

+1

+1

0

4

0

15

6

42

4

27

0

0

+1

0

0

88

0

Ajustado!

(31)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 31

• Toda vez que uma subárvore fica com um fator:

• negativo e sua subárvore da esquerda também tem um 

fator negativo

ROTAÇÃO À ESQUERDA

130

150

200

0

-2

-1

(32)

Rotação Esquerda

120

100

130

150

200

80

110

120

100

130

150

200

80

110

-1

0

0

0

-2

-1

(33)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 33

120

100

150

80

110

130

200

120

100

130

150

200

80

110

Rotação Esquerda

-1

0

0

0

0

-2

-1

0

0

0

0

0

0

0

(34)

Rotação Esquerda

A

-2

-1

a

Assumindo a e aux ponteiros para as subárvores com raiz A e B: aux = a->dir; a->dir = aux->esq; aux->esq = a; a = aux;    

T2

T1

T1

,

T2

,

T3

e

T4

são subárvores

(vazias ou não)

T3

B

(35)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 35

aux

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->dir; a->dir = aux->esq; aux->esq = a; a = aux;    

A

a

T2

T1

T3

B

(36)

Rotação Esquerda

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->dir; a->dir = aux->esq; aux->esq = a; a = aux;    

aux

A

T2

T1

T3

B

a

(37)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 37

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->dir; a->dir = aux->esq; aux->esq = a; a = aux;    

aux

A

T2

T1

T3

B

a

(38)

Rotação Esquerda

Assumindo a e aux ponteiros para as subárvores com raiz A e B:

aux = a->dir; a->dir = aux->esq; aux->esq = a; a = aux;    

aux

A

T2

T1

T3

B

a

(39)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 39

150

130

200

130

150

200

Rotação Esquerda

0

-2

-1

0

0

0

(40)

Rotação Esquerda

42

15

88

94

67

-1

0

0

0

0

Incluir

90

42

15

88

94

67

-2

-1

0

0

1

90

0

(41)

Engenharia de Computação - Unipampa

Rotação Esquerda

01/02/2018 41

88

42

94

90

67

0

+1

0

0

0

15

0

42

15

88

94

67

-2

-1

0

0

1

90

0

Rotação

Esquerda

Ajustado!

(42)

Rotação Esquerda-Direita

• Toda vez que uma subárvore fica com um fator:

• positivo e sua subárvore da esquerda também tem um 

fator negativo

ROTAÇÃO À ESQUERDA-DIREITA

110

80

100

+2

-1

(43)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 43

DIREITA

ESQUERDA

120

110

150

80

100

130

200

120

110

150

100

80

130

200

120

100

150

80

110

130

200

(44)

Rotação Esquerda-Direita

A

B

T1

T4

C

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

(45)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 45

A

B

T1

T2

T4

C

T3

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

(46)

Rotação Esquerda-Direita

A

B

T1

T4

C

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

pC

(47)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 47

A

B

T1

T2

T4

C

T3

Assumindo a e aux ponteiros para as subárvores  com raiz A e B: pB = pA->esq; pC = pB->dir;

pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

pC

(48)

Rotação Esquerda-Direita

A

B

T1

T4

C

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

pC

(49)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 49

A

B

T1

T2

T4

C

T3

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

pC

(50)

Rotação Esquerda-Direita

A

B

T1

C

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;   

pA

pB

pC

(51)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 51

A

B

T1

T2

T4

C

T3

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->esq; pC = pB->dir; pB->dir = pC->esq;    Rotação Esquerda! pC->esq = pB; pA->esq = pC->dir; pC->dir = pA; pA = pC;

pB

pC

pA

(52)

Rotação Esquerda-Direita

42

15

88

27

6

+1

0

0

0

Incluir

34

42

15

88

27

6

+2

0

-1

-1

0

34

0

(53)

Engenharia de Computação - Unipampa

Rotação Esquerda-Direita

01/02/2018 53

42

15

88

27

6

+2

0

-1

-1

0

34

0

Rotação Esquerda Direita

0

PASSO 1

Rotação Esquerda

42

27

88

34

15

+2

0

+1

+1

6

0

(54)

Rotação Esquerda-Direita

Rotação Esquerda Direta

PASSO 2

Rotação Direita

42

27

88

34

15

+2

0

+1

+1

0

6

0

27

15

42

34

0

0

+1

0

6

0

88

0

(55)

Engenharia de Computação - Unipampa

Rotação Direita-Esquerda

01/02/2018 55

• Toda vez que uma subárvore fica com um fator:

• negativo e sua subárvore da esquerda também tem um 

fator positivo

ROTAÇÃO À DIREITA-ESQUERDA

130

200

150

-2

+1

0

(56)

Rotação Direita-Esquerda

DIREITA

120

100

130

200

150

80

110

ESQUERDA

120

100

130

150

200

80

110

120

100

150

(57)

Engenharia de Computação - Unipampa

Rotação Direita-Esquerda

01/02/2018 57

A

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

pA

B

T1

T2

C

T3

T4

(58)

Rotação Direita-Esquerda

A

pA

B

T1

C

T4

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

pB

(59)

Engenharia de Computação - Unipampa

Rotação Direita-Esquerda

01/02/2018 59 Assumindo a e aux ponteiros para as subárvores  com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

A

pA

B

T1

T2

C

T3

T4

pB

pC

(60)

Rotação Direita-Esquerda

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B:

pB = pA->dir; pC = pB->esq;

pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

A

pA

B

T1

C

T4

pB

pC

(61)

Engenharia de Computação - Unipampa

Rotação Direita-Esquerda

01/02/2018 61 Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

A

pA

B

T1

T2

C

T3

T4

pB

pC

(62)

Rotação Direita-Esquerda

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

A

pA

B

T1

C

pB

pC

(63)

Engenharia de Computação - Unipampa

Rotação Direita-Esquerda

01/02/2018 63 Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;   

A

pA

B

T1

T2

C

T3

T4

pB

pC

(64)

Rotação Direita-Esquerda

Assumindo pA, pB e pC ponteiros para as  subárvores com raiz A e B: pB = pA->dir; pC = pB->esq; pB->esq = pC->dir;    Rotação Direita! pC->dir = pB; pA->dir = pC->esq; pC->esq = pA; pA = pC;

A

B

T1

C

pB

pC

pA

(65)

Engenharia de Computação - Unipampa

Rotações

01/02/2018 65

• Após uma rotação Direita ou Esquerda, os nós

A e B passam a ter fator de balanceamento

iguais a zero.

• No caso de rotações Esquerda-Direita e

Direita-Esquerda

• Os fatores de balanceamento dos nós A e B

podem ser recalculados com base no fator de

balanceamento do nó C.

• O novo fator de balanceamento do nó C passa a

ser zero.

(66)

Exercícios de fixação

• Realize as rotações necessárias:

40

30

50

55

45

20

25

30

26

15

17

12

(67)

Engenharia de Computação - Unipampa

Exercícios de fixação

01/02/2018 67

• Realize as rotações necessárias:

40

30

50

55

45

52

20

25

30

26

15

17

12

0

1

-2

-2

-1

(68)

Representação

• Vamos representar um nó AVL de forma similar

a um nó em uma árvore binária de busca,

contendo um campo adicionar altura que

manterá a altura de cada nó para o calculo do

fator de balanceamento:

(69)

Engenharia de Computação - Unipampa

Busca com Inserção

01/02/2018 69

• Para realizar as operações necessárias em cada nó

isolado é descrito a seguir um algoritmo recursivo.

• Por ser recursivo, é simples a incorporação de uma

operação adicional a ser executada no caminho de volta

ao longo do trajeto de busca.

• A cada passo é necessário saber se a altura da subárvore

em que foi feita a inserção cresceu ou não.

• Para tanto, serão utilizadas algumas funções auxiliares,

que calculam a altura da subárvore.

• O algoritmo de inserção deve ser chamado com o ponteiro

a como sendo a raiz da árvore.

(70)
(71)

Engenharia de Computação - Unipampa

Busca com Inserção

(72)

Busca com Inserção

• Funções auxiliares para realizar as rotações e

calculo da altura.

(73)

Engenharia de Computação - Unipampa

Busca com Inserção

01/02/2018 73

• Funções auxiliares para realizar as rotações e

calculo da altura.

(74)

Busca com Inserção

• Funções auxiliares para realizar as rotações e

calculo da altura.

(75)

Engenharia de Computação - Unipampa

Exemplo - Inserção

01/02/2018 75

(76)

Inserções

• Inserido x=7

• A inserção produz uma

árvore balanceada

(77)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 77

• Inserido x=7

• A inserção produz uma

árvore balanceada, cujo

balanceamento envolve

uma rotação Esquerda

(78)

Inserções

(79)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 79

(80)

Inserções

• Inserido x=2

• Inserir x=1

(81)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 81

• Inserido x=2

• Inserido x=1

• Ocorre

desbalanceamento da

subárvore de raiz 4...

(82)

Inserções

• Inserido x=2

• Inserido x=1

• Ocorre

desbalanceamento da

subárvore de raiz 4,

que é corrigido por

uma rotação Direita

(83)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 83

(84)

Inserções

• Inserido x=3

• Ocorre desbalanceamento

da subárvore de raiz 5...

(85)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 85

• Inserido x=3

• Ocorre

desbalanceamento da

subárvore de raiz 5, que

é corrigido por uma

rotação

Esquerda-Direita

(86)

Inserções

(87)

Engenharia de Computação - Unipampa

Inserções

01/02/2018 87

• Inserido x=3

• Ocorre desbalanceamento

da subárvore de raiz 5...

(88)

Inserções

• Inserido x=6

• Ocorre

desbalanceamento da

subárvore de raiz 5,

que é corrigido por uma

rotação

(89)

Engenharia de Computação - Unipampa

Inserção

01/02/2018 89

• INSERÇÃO A DIREITA

• Três casos distintos podem ocorrer:

• Caso 1:

h = 1 antes da inclusão

h -> 0, altura não se altera. Encerra.

• Caso 2:

h = 0 antes da inclusão

h -> -1, altura se altera, mas não provoca desbalanceamento.

Devem ser examinados os ancestrais do nó

• Caso 3:

h = -1 antes da inclusão

h -> -2, nodo fica desbalanceado. Aplicar a rotação adequada

e encerrar, pois a altura volta a ser igual à anterior.

(90)

Busca com Inserção

120

100

150

1

120

100

150

0

155

120

150

0

-1

(91)

Engenharia de Computação - Unipampa

Busca com Inserção

01/02/2018 91

• INSERÇÃO A ESQUERDA

• Três casos distintos podem ocorrer:

• Caso 1:

h = -1 antes da inclusão

h -> 0, altura não se altera. Encerra.

• Caso 2:

h = 0 antes da inclusão

h -> 1, altura se altera, mas não provoca desbalanceamento.

Devem ser examinados os ancestrais do nó

• Caso 3:

h = 1 antes da inclusão

h -> 2, nodo fica desbalanceado. Aplicar a rotação adequada

e encerrar, pois a altura volta a ser igual à anterior.

(92)

Busca com Inserção

120

100

150

-1

120

100

150

0

140

120

110

0

100

1

(93)

Engenharia de Computação - Unipampa

Remoção

(94)

Remoção

(95)

Engenharia de Computação - Unipampa

Remoção

(96)
(97)

Engenharia de Computação - Unipampa

Remoção

(98)

Remoção

(99)

Engenharia de Computação - Unipampa

Remoção

(100)
(101)

Engenharia de Computação - Unipampa

Remoção

(102)

Remoção

(103)

Engenharia de Computação - Unipampa

Remoção

(104)
(105)

Engenharia de Computação - Unipampa

Remoção

(106)

Remoção

(107)

Engenharia de Computação - Unipampa

Remoção

(108)

Remoção

(109)

Engenharia de Computação - Unipampa

Remoção

01/02/2018 109

• A remoção em árvores AVL é similar à remoção em

uma árvore binária de busca

• Todavia, é preciso verificar o balanceamento e, se

necessário, aplicar algumas das rotações.

• O algoritmo de remoção deve ser chamado com o

ponteiro a como sendo a raiz da árvore.

• As rotações aplicadas são ao contrário das utilizadas

na inserção:

• Quando inseria na esquerda as rotações eram Direita ou

Esquerda-Direita. Agora se excluo na direita as rotações são

Esquerda ou Direita-Esquerda.

(110)
(111)

Engenharia de Computação - Unipampa

Remoção

(112)
(113)

Engenharia de Computação - Unipampa

Remoção

01/02/2018 113

(114)

Exercícios de fixação

• Inserir em AVL, refazendo a árvore quando tiver

rotação e anotando as rotações realizadas. Na

inserção de quais elementos será necessário fazer

rotação?

50, 40, 30, 45, 47, 55, 56, 1, 2, 3

• Realize a inserção dos seguintes nodos fazendo as

devidas rotações quando necessárias:

(115)

Engenharia de Computação - Unipampa

Exercício de fixação -

Resposta

(116)

• Implemente a semipresencial 6

(117)

Engenharia de Computação - Unipampa

Referências

01/02/2018 117

• Horowitz, E. & Sahni, S. Fundamentos

deEstruturas de Dados. Editora Campus,

1984.

• Wirth, N. Algoritmos e Estruturas de Dados,

Pretince/Hall do Brasil, 1989.

• Baseado no material elaborado por José

Augusto Baranauskas.

Referências

Documentos relacionados

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

A licença simples é transmissível por morte do seu titular para os seus herdeiros legais, sendo válida para o ano a que disser respeito. Para o caso de pessoas colectivas a

Estudo do Meio (Descoberta das inter-relações entre espaços: o contacto entre a terra e o mar.. Exemplo de abordagem Articulação com conteúdos

11) Menino de 2 anos, com história de febre e tosse há 1 semana e desconforto respiratório há 2 dias, com piora progressiva, chega à sala de urgência em mau estado

13 Assim, a primeira fase no momento da dispensa de um MSRM é a validação da receita, por isso, independentemente do modo de disponibilização da prescrição, a receita

O texto está configurado em seções que, articuladas entre si, discutem determinada compreensão sobre cultura digital, apreciações de conceitos que fundamentam o aprender e

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No