Está en la página 1de 4

Estructura de datos trie (árbol de

prefijos y sufijos)
Luis delgado
Departamento de simulación de sistemas
Universidad tecnológica de Panamá, Campus Víctor Levi Sasso
Tecnomaxter11@gmail.com

El trie (también conocido como árbol de Internamente, funciona como un árbol


prefijos) es una estructura de datos muy útil ordenado, donde cada nodo representa un
para resolver problemas asociados con Sting. carácter de una palabra insertada en el trie,
y los nodos hijos de este son caracteres
1. INTRODUCCIÓN
que aparecen después de el en la palabra.
Los problemas de búsqueda son parte La raíz del árbol es el carácter vacío, ya
esencial en el estudio y aplicación de las que se puede considerar que este aparece
Ciencias de la Computación. La mayoría de al principio de cualquier palabra.
las aplicaciones, por simples que sean,
necesitan en algún momento realizar una El trie también es conocido como árbol
búsqueda sobre un conjunto de datos dado, de prefijos porque al insertar una palabra
obteniendo la información asociada a ellos en el árbol se busca primero el mayor
para su posterior procesamiento. prefijo de esa palabra que ya esté presente
Tradicionalmente la operación de búsqueda en el árbol, y a partir de ahí se continúa
se ha aplicado a datos estructurados, es insertando hasta donde termine la palabra.
decir a un conjunto datos que se han debido
organizar de alguna determinada manera 2. INSERCION EN EL TRIE
con el objeto de facilitar su manipulación, Si insertáramos en el trie original la
dando así origen a las estructuras de datos. palabra Abel, la secuencia de operaciones
Estas ocupan un lugar importante en la seria la siguiente:
resolución de problemas de búsqueda, ya  Comenzamos en la raíz.
que generalmente de la elección de la  Buscamos el carácter ‘a’.
estructura más adecuada depende la Aparece, por tanto, nos movemos
eficiencia de una solución. en el árbol hasta la ‘a’.
En este artículo conocerán la estructura de  Buscamos ‘b’. Aparece, nos
datos árbol trie (árbol de prefijos) que es movemos a ‘b’.
una estructura de datos que manipula strings  Buscamos ‘e’. Aparece, nos
y hace un uso óptimo de estas para así movemos a ‘e’.
optimizar la búsqueda.  Buscamos ‘l’. No aparece,
insertamos ‘l’ como hijo de ‘e’.
1. CONCEPTO DE ÁRBOL TRIE Nos movemos a ‘l’.
 Fin de la palabra, marcamos ‘l’
El trie (también conocido como árbol de como terminal.
prefijos) es una estructura de datos muy La imagen a continuación muestra el trie
útil para resolver problemas asociados con después de insertar la palabra y la ruta
Sting. El problema más conocido es dado recorrida para insertarla.
una colección de palabras (algo como un
diccionario) y una palabra en particular,
saber si la palabra se encuentra en la
colección de palabras.
Esta estructura fue introducida por Rene
de la Briandais y Edward Fredking en
1959. El nombre proviene de la palabra
RETRIEVAL, que significa recuperación.
caracteres que no aparecen en ninguna de
las palabras almacenadas en el mismo.
4. EJEMPLO DE BUSQUEDA

Considerando el trie de la Figura,


suponga que se necesita buscar la cadena
cbb entonces el proceso a seguir seria el
siguiente: comenzando en la raíz, se utiliza
el primer carácter de la cadena buscada, una
c, como subíndice para decidir cuál ser ‘a la
rama a seguir. As´ı el puntero almacenado
en nodo[c] nos permite avanzar en el ´árbol
hasta un nodo en el pr´oximo nivel. Ahora
se toma el segundo carácter de la secuencia
de consulta, una b, y se utiliza como
subíndice en el nodo corriente para
3. BUSQUEDA encontrar el pr´oximo puntero a seguir,
nodo[b]. Este proceso se repite hasta
Al momento de una búsqueda la raíz del terminar con todos los caracteres de la
trie funciona como un índice alfabético en cadena buscada y llegar a una hoja en el trie.
un diccionario: utilizando el primer
carácter de la cadena buscada como
subíndice en la raíz, que es el nodo 5. VENTAJAS
corriente en este momento, se decide cual Las ventajas principales de los tries sobre
ser ‘a la rama que se seguir ‘a; por los árboles de búsqueda binaria (BST) son:
ejemplo, si el primer carácter de la
 búsqueda de claves más rápida. La
secuencia a buscar es la i-exima letra del
búsqueda de una clave de longitud
alfabeto, entonces se deber a seguir el i-
m tendrá en el peor de los casos un
esimo puntero, para´ alcanzar el próximo
coste de O(m) Un BST tiene un
nodo en el árbol. Esa rama me conduce al
coste de O(mlogn) siendo n el
i−esimo sub arbol que contiene a todas las
número de elementos del árbol, ya
palabras almacenadas que comienzan con
que la búsqueda depende de la
el i-esimo carácter, y todas las cadenas que
profundidad del árbol, logarítmica
comiencen con ese carácter del alfabeto
con el número de claves.
deberán seguir este puntero.
En el próximo nivel la sub indicación se  menos espacio requerido para
realiza del mismo modo, pero de acuerdo almacenar gran cantidad de cadenas
al segundo carácter del elemento de pequeñas, puesto que las claves no
consulta. Si la cadena a buscar tiene p se almacenan explícitamente
caracteres el paso de búsqueda para esa  mejor funcionamiento para el
cadena termina en un nodo de profundidad algoritmo de búsqueda del prefijo
p. Cada nodo de nivel l en el árbol representa más largo.
el conjunto de todas las palabras que
comienzan con una cierta secuencia del 6. APLICACIONES
carácter; en ese punto el árbol permite
seguir una de M ramas distintas A. Como sustitución de una Tabla hash
dependiendo del carácter l + 1 de la
cadena. En un nodo del trie los punteros Un Trie puede usarse para reemplazar
que son nil corresponden a secuencias de una Tabla hash, sobre la que presenta las
siguientes ventajas:

el tiempo de búsqueda en
una Tabla hash imperfecta es
del orden de O(n), mientras
que en un trie es del orden de
O(l), para l el número de niveles del trie. son útiles en la implementación de
Esto es debido a las colisiones de claves. algoritmos de correspondencia aproximada,
 en un trie no se producen colisiones de como los usados en el software de
claves corrección ortográfica. Una herramienta
no hay que definir una función de hash, indispensable para cualquier procesador de
o modificarla si añadimos más texto es un revisor ortográfico, el cual
claves permite al usuario encontrar tantos errores
 los contenedores que almacenan de ortografía como sea posible.
distintos valores asociados a una única Dependiendo de la complejidad del revisor
clave sólo son necesarios si tenemos ortográfico, el usuario puede incluso ver las
más de un valor asociada a una única correcciones posibles. Los correctores
clave. En una tabla hash siempre se ortográficos se utilizan principalmente en un
necesitan estos contenedores para las entorno interactivo, el usuario puede
colisiones de clave invocarlos en cualquier momento mientras
 un trie puede proporcionarnos un se utiliza el procesador de texto, hacer
ordenamiento alfabético de las entradas correcciones sobre la marcha, incluso antes
por clave de procesar el archivo completo.

Las principales desventajas de los tries


respecto a las tablas hash son:
 en determinados casos pueden ser más
lentos que las tablas hash en la
búsqueda de datos, especialmente si los
datos son consultados desde
dispositivos de almacenamiento
secundario, como disco duro, donde el
tiempo de acceso es elevado con
respecto a memoria principal
 no es sencillo representar todas las
claves como cadenas, como los
números reales, que pueden tener 7. ARBOL PATRICIA
distintas representaciones en forma de
cadena para un mismo número, p.ej. 1, Un ´árbol patricio es una representación
100, 1.000, +1.000, ... compacta de un trie que permite reducir el
 a menudo los tries son más ineficientes espacio de almacenamiento. Corresponde a
respecto al espacio que las tablas hash que todo nodo que es un hijo único, es
 los tries no suelen estar disponibles con unido con su padre, renombrando la etiqueta
las herramientas de desarrollo software, como la concatenación de las etiquetas
todo lo contrario que las tablas hash borradas
Patricia es la sigla de Practical Algorithm
B. Como representación de To Retrieve Information Coded In
diccionarios Alphanumeric, en castellano: AlgoritmoPr
´acticoparaRecuperarInformacionCodificada
Una aplicación frecuente de los tries es el enAlfanumerico, y fue creado por Morrison
almacenamiento de diccionarios, como los en 1968 dentro del contexto de indexación
que se encuentran en los teléfonos móviles. de Sting. Los arboles Patricia son arboles
Estas aplicaciones se aprovechan de la digitales cuya principal diferencia con los
capacidad de los tries para hacer búsquedas, tries es la eliminación de los nodos unarios
inserciones y borrados rápidos. Sin (con un solo hijo), los nodos que
embargo, si sólo se necesita el permanecen en el árbol son aquellos que
almacenamiento de las palabras (p.ej. no se tienen una cantidad de hijos mayor o igual a
necesita almacenar información auxiliar de dos (m´as de dos punteros distintos de nil);
las palabras del diccionario) un autómata estos nodos son, igual que en los tries,
finito determinista a cíclico mínimo usa vectores con tantas posiciones como
menos espacio que un trie. Los tries también símbolos tiene el alfabeto más una para el
carácter de un de palabra, y las búsquedas se debido a eso pudimos llegar desarrollar este
continúan realizando por indexación. En los artículo.
´arboles Patricia las cadenas representadas
son almacenadas en los nodos del ´árbol REFERENCIAS
siempre, esto no depende de la
implementación que se elija, sino que forma [1] Donald Knuth. TheArtof
parte de la definición de la estructura Computer Programming sorting
and Searching, VolIII Addison–
Wesley; ISBN0-
201-03803-X.
[2] Harry Lewis,
Larry
Denenberg.
Data Structures
&Their
Algorithms.
HarperCollins
Publishers;
ISBN0-673-
39736-X.
[3] Jeffrey Ullman,
Alfred Aho,
John Hopcroft.
Estructuras de
Datos y
8. CONCLUSION Algoritmos, primera edici´on.
Addison–Wesley; ISBN968-
444-345-5.
En este artículo se ha presentado cada
[4] Robert Kruse, CLTondo, Bruce
aspecto importante de una árbol trie que es
Leung. DataStructure
como realiza la inserción de datos utilizando
yPrograming Design, segunda
creando un árbol de prefijos donde optimiza
edici ´ on. Prentice
el proceso debido a que solo se agregan los
Hall;ISBN013-288-366-X.
caracteres nuevos y hace uso de los
[5] Robert Sedgewick.
anteriormente introducidos, como busca
AlgorithmsinC,3rd.Edition.Parts
desolándose atravesó de las ramas del árbol
1-
comparando caracteres ya sabiendo esto se
[6] https://compilandoconocimiento.
puede decir que los arboles trie (arboles de
com/2017/01/19/tablas-hash/
prefijos o sufijos) son una alternativa a los
[7] https://prodeportiva.wordpress.c
algoritmos de búsqueda que debido a su
om/2013/02/13/trie-arbol-
capacidades de almacenamiento y búsqueda
prefijos/
los convierte en uno de los métodos más
[8] t18-18-Árboles-Digitales-Trie-
usados hoy en día en diversas aplicaciones
Patricia.pdf
como correctores ortográficos, barra de
búsquedas, diccionarios, etc. ya
[9] https://slideplayer.es/slide/50442
32/
RECONOCIMIENTOS

Quisiera reconocer el apoyo brindado por


la profesora Yolanda De Miguelena por el
apoyo brindado durante el semestre de
clases gracias a su metodología de
enseñanza hace que las clases sean
fácilmente entendidas por nosotros los
estudiantes y aclara todas nuestras dudas

También podría gustarte