Você está na página 1de 1

Insero[editar | editar cdigo-fonte]

Exemplo de insero e remoo em rvore PATRICIA. A rvore possua inicialmente a chave


cadeado. Na insero da chave cadeira, so criados 2 novos ns. Para deletar a chave
cadeado so removidos 2 ns.

Inserir uma string em uma rvore Patricia similar a pesquisar por essa string at o ponto
onde a busca encerrada, pois a string no encontrada na rvore. Se a busca
encerrada em uma aresta, um novo n criado nessa aresta. Esse n armazena a
posio do caractere que distingue a chave destino daquela aresta e a chave que se
deseja inserir, e tem como filhos o n que estava na extremidade seguinte da aresta e um
novo n com a parte restante da nova chave. Se a busca for encerrada em um n, ento
um n filho criado e o restante da nova chave usado como rtulo para aresta entre os
dois. Ambos os casos tem complexidade de tempo de O(|s| + |E|), onde s a string que
ser inserida e E o alfabeto suportado pela rvore.

Remoo[editar | editar cdigo-fonte]


Remover uma string de uma rvore PATRICIA o oposto da operao de insero.
Primeiro, localiza-se a folha correspondente a string e remove-se ela da rvore. Como o
pai ter apenas um filho, os ns pai e irmo do n removido so agrupados em um nico
n. A complexidade de tempo depende diretamente do tempo para remover 2 ns da
rvore, se essa remoo for considerada linear, ento a complexidade de tempo da
operao O(|s|), onde s a string que ser removida, se essa remoo tiver
complexidade O(N), ento a complexidade de tempo da operao O(|s| + N), onde N o
tamanho total de todas as strings armazenadas na rvore.

Você também pode gostar