Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
No problema de busca, suposto que existe um
conjunto de chaves S={s1, , sn} e um valor x
correspondente a uma chave que se deseja
localizar em S.
Nos mtodos vistos at agora, tentavam estruturar
S de alguma forma conveniente e, atravs de
comparaes de x com si de S, tentar localizar x
em S.
Nesses mtodos, cada chave si, bem como a chave
desejada x, tratada como um nico elemento
indivisvel.
Introduo
Porm, nem sempre as chaves sero do mesmo
tamanho e podem exceder o espao definido para
elas.
Suponha que se deseje armazenar um texto
literrio para, em seguida, tentar localizar frases
nesse texto.
Neste caso, o conjunto S de chaves corresponderia
s frases armazenadas e cada si uma frase
passvel de ser buscada.
Neste cenrio, a busca digital a mais apropriada.
Busca digital
A diferena entre a busca digital e a busca estudada at agora
que a chave no tratada como um elemento indivisvel.
Isto , assume-se que cada chave constituda de um conjunto de
caracteres ou dgitos definidos em um alfabeto apropriado.
Em vez de se comparar a chave procurada com as chaves do
conjunto armazenado, a comparao efetuada, individualmente,
entre os dgitos que compem as chaves, dgito a dgito.
O mtodo de pesquisa digital anlogo pesquisa manual em
dicionrios: com a primeira letra da palavra so determinadas
todas as pginas que contm as palavras iniciadas por aquela
letra e assim por diante
Introduo
TRIE vem de RETRIEVAL
RECUPERAO
Pronncia: TRI ou TRAI
um tipo de rvore de
busca.
Idia geral: usar partes
das CHAVES como
caminho busca
Origem: anos 60 por
Edward Fredkin
CHAVES: Caractersticas
Cada chave formada por palavras sobre um
alfabeto
Palavras com tamanho varivel e ilimitado
Em geral associam-se chaves a elementos ou
registros, como na tabela Hash
CHAVES: Caractersticas
Cada chave formada a partir de alfabeto de
smbolos
Exemplos de alfabetos:
{0,1}, {A, B, C, D, E,...Z}, {0,1,2,3,4,5,...,9}
Exemplos de chaves:
ABABBBABABA 19034717 Maria
010101010000000000101000000001010
Chaves parcialmente partilhadas entre os
elementos
Trie: A estrutura
rvore ordenada e n-ria
Chaves em geral caracteres
Ao contrrio da rvore de busca binria
nenhum n armazena a chave
Chave determinada pela posio na
rvore
Trie: A estrutura
Descendentes de mesmo n com mesmo
prefixo
Raiz: cadeia vazia
Valores ou elementos associados a folhas
ou a alguns ns internos de interesse
O caminho da raiz para qualquer outro n
um prefixo de uma string
Trie: A estrutura
rvore ordenada e n-ria
Trie: A estrutura
O grau corresponde ao tamanho do alfabeto
A trie pode ser vista como um autmato finito
Cada nvel percorrido corresponde a avanar um
elemento na chave
<- Nvel 0
(RAIZ)
<- Nvel 1
<- Nvel 2
<- Nvel 4
/0
56
<- Nvel 5
/0
56
/0
15
INSIRA
emma 30
m
a
/0
56
/0
15
/0
30
INSIRA
rob
27
a
/0
56
/0
15
/0
30
/0
27
INSIRA
roger
52
m
a
/0
56
/0
15
/0
30
b
/0
27
g
e
r
/0
52
INSIRA
anne
67
/0
56
e
/0
67
/0
15
a
/0
30
b
/0
27
g
e
r
/0
52
INSIRA
ro
23
/0
56
e
/0
67
/0
15
a
/0
30
b
/0
27
g
e
r
/0
52
EXERCCIO
Quais chaves/palavras esto
representadas nesta trie?
v
f
o
i
*
u
r
a
*
i
*
a
i
*
i
*
e
r
*
e
u
*
o
m
o
s
*
s
*
raiz
Operaes em TRIES
INSERO
Faz-se uma busca pela palavra a ser inserida.
Se ela j existir na TRIE nada feito.
Caso contrrio, recuperado o n at onde
acontece a maior substring da palavra a ser
inserida.
O restante dos seus caracteres so adicionados
na TRIE a partir daquele n
Operaes em TRIES
Insero : bbaabb
b
a
a
b
a
b
a
a
a
a
b
a
b
b
b
Busca pra
aqui
Operaes em TRIES
Insero : bbaabb
b
a
a
b
a
b
a
a
a
a
b
a
b
b
b
b
b
Operaes em TRIES
MEMBRO
1. Busca no nvel superior o nodo que confere com o
primeiro caractere (corrente) da chave
2. Se nenhum n confere, retorna FALSO
Seno
3. Se o caractere que confere \0
Retorna Verdadeiro
Seno
4. Move para a subTRIE que confere com esse
caractere
5. Avana para o prximo caractere na chave
6. V para passo 1
Operaes em TRIES
MEMBRO: ro (/0)
a
m
y
/0
56
e
/0
67
/0
15
a
/0
30
/0
23
b
/0
27
g
e
r
/0
52
Operaes em TRIES
REMOO
Busca-se o n que representa o final da
palavra a ser removida.
So removidos os ns que possuem
apenas um filho pelo caminho
ascendente.
A remoo concluda quando se
encontra um n com mais de um filho
Operaes em TRIES
Remoo : bbaaa
b
a
a
a
a
b
a
a
a
b
b
b
Operaes em TRIES
Remoo : bbaaa
b
a
a
b
b
b
a
a
a
b
b
b
Operaes em TRIES
COMPLEXIDADE
A altura da rvore igual ao comprimento da chave mais
longa
O tempo de execuo das operaes no depende do
nmero de elementos da rvore
Complexidade: O (AK)
A = tamanho do alfabeto
K = tamanho da chave
A utilizao de uma TRIE s compensa se o acesso aos
componentes individuais das chaves for bastante rpido
Quanto maior a estrutura mais eficiente o uso do espao.
Para enfrentar o desperdcio de espao com estruturas
pequenas foram criadas as rvores de PREFIXO e a PATRCIA
0
0
0
0
0
1
1
1
+
0
0
0
0
0
0
1
1
1
+
0
010110
010111
10
101
1010
S1
1
1
0
0
1
0
S2
0
S3
S4
1
S5
S1
1
1
0
0
1
0
S2
0
S3
S4
1
S5
Outra alternativa
Outra alternativa
rvore Patrcia
Patricia abreviatura de
Practical Algorithm To Retrieve Information Coded In
Alphanumeric (Algoritmo Prtico para Recuperar Informao
Codificada em Alfanumrico)
Insero X = B
Insero X = J
Insero X = H
Insero X = H
Insero X = Q
Insero X = Q
Insero X = C
Insero X = C
Insero X = K
Insero X = K
Insero X = W
W=110110
Insero X = W
W=110110
Insero X = W
Obs: A rvore PATRICIA
no necessariamente
binria!
W=110110
Exerccio
Insira as seguintes chaves em uma rvore Patrcia:
A
B
C
D
E
F
G
H
000100
010100
000010
100100
001001
001100
101000
101010