Decide las estructuras de datos más apropiadas (pilas, colas, listas, árboles, grafos) para simular los procesos que sigue un buscador de Internet para recopilar e indexar información de la web, y organizar la información para poder calcular el grado de autoridad de los sitios web.
Los buscadores de Internet, tipo Google, utilizan unos programas llamados robots web que se encargan de explorar la web recopilando datos de cada sitio web y navegando por los enlaces (links) que encuentran en cada página web. Cada cierto tiempo, los robots envían la información (contenidos de páginas web y enlaces con otras páginas) a un repositorio de datos que se encarga de organizar e indexar de forma óptima dicha información. Posteriormente, hay que aplicar un algoritmo de ránking que permita calcular el grado de importancia de cada sitio web. Estos algoritmos se basan en el concepto de autoridad, cada sitio web tiene el valor de autoridad que determina el número de sitios web que interactúan con él.
En concreto, define y justifica la elección de las estructuras de datos más empleadas para representar:
1. La información de los sitios web encontrados por los robots. Esta información tiene que guardarse temporalmente en memoria de la forma más eficiente teniendo en cuenta que los robots están enviando continuamente nuevas páginas que se van procesando para organizarlas e indexarlas.
2. La indexación de las páginas web. Hay que indexar los sitios web por orden alfabético de tal forma que la búsqueda de los mismos sea lo más rápida posible. Hay que seleccionar una estructura de datos para crear este indexador de tal forma que se permita la instrucción de sitios web nuevos conservando el orden alfabético y, si ya existen, actualizar el número de visitas que nuestro robot haya realizado.
3. Los enlaces entre los sitios web. Los robots almacenan los enlaces que salen de cada sitio web en un fichero. Decide cuál es la estructura más apropiada para guardar esta información de forma que permita poder calcular la autoridad de cada sitio web de forma sencilla.