Nombre Password [ Regístrate ]

Biblioteca infantil (OIE 3 - 1999) - Solución

 

La solución que aquí se presenta utiliza una lista enlazada con doble enlace y circular. La razón por la que se ha escogido esta estructura de datos es porque es idónea para realizar la selección de los niños de una manera muy natural. Así, la utilización de un doble enlace implica que cada bibliotecario puede avanzar en un sentido inverso al del otro, y además mantener la lista circular simula perfectamente un círculo de niños. Puesto que los niños se eliminan del círculo una vez escogidos un array no es lo más adecuado para efectuar los recorridos.

Respecto a la implementación: la única dificultad estriba en crear y mantener los enlaces de la lista. El algoritmo que realiza la selección termina cuando ya no quedan más niños en el círculo (variable i). En ningún momento es necesario comprobar si la lista está vacía o no.

Este gráfico ilustra una estructura en la que aparecen dos niños, y los correspondientes bibliotecarios que hacen recorrido horario (hor) y antihorario (ant):



Temas relacionados

Listas enlazadas

Código

Código fuente en C



© (2001-2008) ALGORITMIA.NET - Política de privacidad