¿Estás tratando de familiarizarte con cómo construir estas estructuras, o simplemente cómo usarlas en algo? Si es lo primero, ¿por qué no simplemente implementar la estructura e intentar proporcionar la misma API que las implementaciones estándar (por ejemplo, busque la API Java para sus clases estándar que implementan List, Queue, etc.)
Si desea crear una aplicación solo para ver cómo usaría estas estructuras, intente algo simple, para concentrarse en la estructura particular que le interesa (y así no tiene que lidiar con más de una a la vez) :
- Lista: un ejemplo común que varios idiomas han implementado es una lista de tareas pendientes. Debe administrar agregar elementos a la lista, eliminarlos, tal vez editarlos.
- Pila: ¿Qué hay de implementar un “juego” de Towers-of-Hanoi (realmente solo una demostración de los pasos necesarios para resolverlo)? O una calculadora RPN como los viejos HP de hace años y años.
- Cola: ¿qué tal una cola de trabajo? Varias partes del programa podrían poner trabajos en la cola, y varios trabajadores podrían eliminar trabajos de la cola.
- Árbol binario: ¿qué tal implementar un diccionario, en el menor espacio posible? Esto podría hacerse con un árbol.
La otra cosa que puede hacer es ir a un lugar como HackerRank, que tiene muchos problemas que requieren la creación de un programa (generalmente solo una parte de uno) que utilizará una u otra de las estructuras que le interesan.
- Cómo hacer un método que devuelva un arrayList que ha ordenado el número de Strings en cada fila del archivo
- ¿Escribir un programa de CA para convertir un número en palabras de moneda?
- ¿Cuáles son las ventajas de usar la notación (0,1) en el sistema binario?
- Me resultó difícil entender los algoritmos de clasificación. ¡Cuando profundizo en los algoritmos, siento que mi mente se bloquea! ¿Qué debo hacer para sentirme cómodo con los algoritmos?
- ¿Cómo escribo un algoritmo para el problema de las 100 puertas?