Árvores Digitais -...

86
Árvores Digitais Letícia Rodrigues Bueno UFABC

Transcript of Árvores Digitais -...

Page 1: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais

Letícia Rodrigues Bueno

UFABC

Page 2: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

Page 3: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

Page 4: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:

Page 5: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;

Page 6: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;• tamanho da chave permite armazenamento em memória

de forma eficiente;

Page 7: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;• tamanho da chave permite armazenamento em memória

de forma eficiente;• chaves têm mesmo tamanho;

Page 8: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;• tamanho da chave permite armazenamento em memória

de forma eficiente;• chaves têm mesmo tamanho;

• E se a busca consistir em frases em texto literário?

Page 9: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;• tamanho da chave permite armazenamento em memória

de forma eficiente;• chaves têm mesmo tamanho;

• E se a busca consistir em frases em texto literário?

• Utilizamos busca digital;

Page 10: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Busca Digital

• Problema geral de busca: conjunto de chaves S e chavex a localizar em S;

• Assumido até agora:• chaves são elementos indivisíveis;• tamanho da chave permite armazenamento em memória

de forma eficiente;• chaves têm mesmo tamanho;

• E se a busca consistir em frases em texto literário?

• Utilizamos busca digital;

• Estrutura utilizada: árvore digital;

Page 11: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

Page 12: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Trie: originado de “information reTRIEval” devido aaplicação em recuperação de informação;

Page 13: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Trie: originado de “information reTRIEval” devido aaplicação em recuperação de informação;

• Na comparação de chaves:

Page 14: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Trie: originado de “information reTRIEval” devido aaplicação em recuperação de informação;

• Na comparação de chaves:• NÃO compara chave procurada com chaves do conjunto

armazenado;

Page 15: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Trie: originado de “information reTRIEval” devido aaplicação em recuperação de informação;

• Na comparação de chaves:• NÃO compara chave procurada com chaves do conjunto

armazenado;• SIM, compara dígitos da chave individualmente.

Número de passos igual tamanho da chave;

Page 16: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

Page 17: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

Alfabeto:{e, r , s}

Page 18: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

e

Alfabeto:{e, r , s}

Page 19: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

es

Alfabeto:{e, r , s}

Page 20: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

ess

Alfabeto:{e, r , s}

Page 21: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

esse

Alfabeto:{e, r , s}

Page 22: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

esses

Alfabeto:{e, r , s}

Page 23: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 24: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 25: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 26: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 27: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 28: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 29: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 30: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

erre

erres

es

esse

esses

se

ser

serre

re

res

rese

reses

serres

seres

Page 31: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

Page 32: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

Page 33: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

Page 34: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

• Alfabeto de S: d1 < d2 < . . . < dm;

Page 35: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

• Alfabeto de S: d1 < d2 < . . . < dm;

• p primeiros dígitos de chave: prefixo;

Page 36: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

• Alfabeto de S: d1 < d2 < . . . < dm;

• p primeiros dígitos de chave: prefixo;

• Árvore digital é árvore m-ária T não vazia onde:

Page 37: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

• Alfabeto de S: d1 < d2 < . . . < dm;

• p primeiros dígitos de chave: prefixo;

• Árvore digital é árvore m-ária T não vazia onde:1. Nó v é j-ésimo filho de seu pai⇒ v corresponde dígito dj ;

Page 38: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais ou Trie

• Conjunto chaves: S = {s1, s2, . . . , sn};

• si é sequência dígitos dj ;

• Alfabeto de S: d1 < d2 < . . . < dm;

• p primeiros dígitos de chave: prefixo;

• Árvore digital é árvore m-ária T não vazia onde:1. Nó v é j-ésimo filho de seu pai⇒ v corresponde dígito dj ;2. Sequência de dígitos da raiz até um nó corresponde a

prefixo de alguma chave de S.

Page 39: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Digital

r

r s

e r s

s

e

s

e

s

e

s

e

s

e

r

r

e

s

e

s

Árvore ternária;

Alfabeto:{e, r , s} ∴ e < r < s

m = 3

S = {erre,erres,es,esse,esses, se,ser , serre, re,res, rese, reses,serres, seres}

Page 40: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de busca

1 buscaDigital(x , pt , l, a):2 se l < k então3 seja j a posição de d(l + 1)

na ordenação do alfabeto4 se pt .pont[j] 6= null então5 pt ← pt .pont[j];6 l ← l + 1;7 buscaDigital(x , pt , l, a);8 senão se pt .terminal = true então9 a← 1;

Page 41: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de busca

1 buscaDigital(x , pt , l, a):2 se l < k então3 seja j a posição de d(l + 1)

na ordenação do alfabeto4 se pt .pont[j] 6= null então5 pt ← pt .pont[j];6 l ← l + 1;7 buscaDigital(x , pt , l, a);8 senão se pt .terminal = true então9 a← 1;

Análise da complexidade:

Page 42: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de busca

1 buscaDigital(x , pt , l, a):2 se l < k então3 seja j a posição de d(l + 1)

na ordenação do alfabeto4 se pt .pont[j] 6= null então5 pt ← pt .pont[j];6 l ← l + 1;7 buscaDigital(x , pt , l, a);8 senão se pt .terminal = true então9 a← 1;

Análise da complexidade:

• Linha 3: gastaO(log m) usandobusca binária;

Page 43: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de busca

1 buscaDigital(x , pt , l, a):2 se l < k então3 seja j a posição de d(l + 1)

na ordenação do alfabeto4 se pt .pont[j] 6= null então5 pt ← pt .pont[j];6 l ← l + 1;7 buscaDigital(x , pt , l, a);8 senão se pt .terminal = true então9 a← 1;

Análise da complexidade:

• Linha 3: gastaO(log m) usandobusca binária;

• Complexidade total:O(k · log m);

Page 44: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de busca

1 buscaDigital(x , pt , l, a):2 se l < k então3 seja j a posição de d(l + 1)

na ordenação do alfabeto4 se pt .pont[j] 6= null então5 pt ← pt .pont[j];6 l ← l + 1;7 buscaDigital(x , pt , l, a);8 senão se pt .terminal = true então9 a← 1;

Análise da complexidade:

• Linha 3: gastaO(log m) usandobusca binária;

• Complexidade total:O(k · log m);

• Representação bináriade dígitos fazcomplexidade: O(k);

x é a chave procurada com k dígitos e k é o tamanho da chave.Chamada inicial:l ← 0; a← 0; buscaDigital(x , raiz, l ,a)

Page 45: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Page 46: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Análise da complexidade:

Page 47: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Análise da complexidade:

• Seja k1 + k2 = k ;

Page 48: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Análise da complexidade:

• Seja k1 + k2 = k ;

• Linha 3: gastaO(k1 · log m);

Page 49: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Análise da complexidade:

• Seja k1 + k2 = k ;

• Linha 3: gastaO(k1 · log m);

• Linha 8: executa m

vezes. Portanto,inserir gasta O(k2 ·m);

Page 50: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: algoritmo de inserção

1 insereDigital(x , pt):2 pt ← ptraiz; l ← a← 0;3 buscaDigital(x , pt , l, a);4 se a = 0 então5 para h = l + 1, . . . , k faça6 seja j a posição de

d(h) no alfabeto;7 ocupar(ptz);8 para i = 1, . . . ,m faça9 ptz.pont[i]← null;

10 pt .pont[j] ← ptz;11 ptz.terminal ← false;12 pt ← ptz;13 pt .terminal ← true;14 senão “inclusão inválida”;

Análise da complexidade:

• Seja k1 + k2 = k ;

• Linha 3: gastaO(k1 · log m);

• Linha 8: executa m

vezes. Portanto,inserir gasta O(k2 ·m);

• Complexidade total:O(k1 log m + k2m);

x é chave a inserir. Chamada inicial: insercaoDigital(x ,ptraiz)

Page 51: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

Page 52: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:

Page 53: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:• independe do número total de chaves (e de tamanho

arquivo);

Page 54: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:• independe do número total de chaves (e de tamanho

arquivo);• depende do tamanho chave procurada e do alfabeto;

Page 55: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:• independe do número total de chaves (e de tamanho

arquivo);• depende do tamanho chave procurada e do alfabeto;

• Alternativa implementação: lista circular para ponteirospara evitar inúmeros ponteiros nulos (otimiza memória);

Page 56: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:• independe do número total de chaves (e de tamanho

arquivo);• depende do tamanho chave procurada e do alfabeto;

• Alternativa implementação: lista circular para ponteirospara evitar inúmeros ponteiros nulos (otimiza memória);

• Trie é tão mais eficiente quanto maior quantidade dechaves com prefixos comuns;

Page 57: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais: complexidade da busca

• Diferente de métodos clássicos de busca pois:• independe do número total de chaves (e de tamanho

arquivo);• depende do tamanho chave procurada e do alfabeto;

• Alternativa implementação: lista circular para ponteirospara evitar inúmeros ponteiros nulos (otimiza memória);

• Trie é tão mais eficiente quanto maior quantidade dechaves com prefixos comuns;

• Trie com muitos ziguezagues é quase sempre ineficiente;

Page 58: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

Page 59: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

• Chaves sãosequência binária;

Page 60: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

• Chaves sãosequência binária;

• Filho esquerdo: 0;

Page 61: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

• Chaves sãosequência binária;

• Filho esquerdo: 0;

• Filho direito: 1;

Page 62: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

• Chaves sãosequência binária;

• Filho esquerdo: 0;

• Filho direito: 1;

• S = {00,0000,00010,00011,0101100,0101101,10,101,1010}

Page 63: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

0

0

0 1

1

0 1

0

1

0

1

0

0 1 1

0 1

0

• Árvore digital bináriacom alfabeto {0, 1};

• Chaves sãosequência binária;

• Filho esquerdo: 0;

• Filho direito: 1;

• S = {00,0000,00010,00011,0101100,0101101,10,101,1010}

• Maior utilização deárvores digitais écaso binário;

Page 64: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

Page 65: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

Page 66: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

• Número de ponteiros vazios é menor;

Page 67: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

• Número de ponteiros vazios é menor;• Árvore binária de prefixo:

Page 68: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

• Número de ponteiros vazios é menor;• Árvore binária de prefixo:

1. nenhum código é prefixo de outro;

Page 69: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

• Número de ponteiros vazios é menor;• Árvore binária de prefixo:

1. nenhum código é prefixo de outro;2. chaves representadas por folhas;

Page 70: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Digitais Binárias

• Chaves/códigos binários são mais empregados emcomputação;

• Número de ponteiros vazios é menor;• Árvore binária de prefixo:

1. nenhum código é prefixo de outro;2. chaves representadas por folhas;

0

0

0 1

1

0 1

1

0 0 1

0

s1

s2

s3 s4 s5

Page 71: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

Page 72: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

• Criador: Donald Morrison, em 1968;

Page 73: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

• Criador: Donald Morrison, em 1968;

• Árvore Patricia: árvore digital binária de prefixos;

Page 74: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

• Criador: Donald Morrison, em 1968;

• Árvore Patricia: árvore digital binária de prefixos;

• Estritamente binária;

Page 75: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

• Criador: Donald Morrison, em 1968;

• Árvore Patricia: árvore digital binária de prefixos;

• Estritamente binária;

• Sequência de nós com apenas um filho são compactadosem um único nó;

Page 76: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: Introdução

• PATRICIA: acrônimo de Practical Algorithm To Retrieve

Information Coded In Alphanumeric;

• Criador: Donald Morrison, em 1968;

• Árvore Patricia: árvore digital binária de prefixos;

• Estritamente binária;

• Sequência de nós com apenas um filho são compactadosem um único nó;

• Nenhuma chave é prefixa de outra chave.

Page 77: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Patricia

Page 78: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Patricia

0

0

0 1

1

0 1

1

0 0 1

0

s1

s2

s3 s4 s5

(c) Árvore Dig. Bin. Prefixo

Page 79: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exemplo de Árvore Patricia

0

0

0 1

1

0 1

1

0 0 1

0

s1

s2

s3 s4 s5

(e) Árvore Dig. Bin. Prefixo

s1 2

4 5

s3s2

1

s5s4

0 1

0 1

0 1 0 1

b

a

(f) Árvore Patricia

Page 80: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvore Patricia: Inserção

s1 2

4 5

s3s2

1

s5s4

0 1

0 1

0 1 0 1

b

a

Page 81: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvore Patricia: Inserção

s1 2

4 4

xs3s2

1

5

s5s4

0 1

0 1

0 1 0 1

0 1

wb

v

Page 82: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Árvores Patricia: algoritmo para inserção

1 buscaPat(x , pt , a):2 se pt .esq = null então a← 1;3 senão4 se k < pt .r então a← 2;5 senão6 se d [pt .r ] = 0 então7 pt ← pt .esq;8 buscaPat(x , pt , a);9 senão pt ← pt .dir

10 buscaPat(x , pt , a);

Page 83: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exercícios

1. Escreva o procedimento de inserção de uma chave emárvores Trie.

Page 84: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Exercícios

1. Escreva o procedimento de inserção de uma chave emárvores Trie.

2. Escreva o procedimento de remoção de uma chave emárvores Trie.

Page 85: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Bibliografia

SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados eseus Algoritmos, LTC, 1994.

Page 86: Árvores Digitais - professor.ufabc.edu.brprofessor.ufabc.edu.br/~leticia.bueno/classes/aed2/materiais/trie.pdf · Busca Digital •Problema geral de busca: conjunto de chaves S e

Perguntas?