No creo que haya ninguno que sea adecuado para “todos”. Dependerá en gran medida de lo que haya hecho antes, y quizás también de lo que pretenda hacer a continuación.
Listas vinculadas: en los primeros dos o tres programas C / C ++ que escribí por mi cuenta, escribí mis propias clases de listas vinculadas. No porque los buenos no se puedan encontrar en otro lugar, solo porque quería probarlo. Tomó un par de iteraciones (juego de palabras) antes de estar satisfecho de haberlo hecho bien, y aprendí mucho en el proceso.
Cuando tenga una buena implementación vinculada individualmente, haga una lista doblemente vinculada.
- En el algoritmo de Mo, ¿por qué clasificamos las consultas primero en función del número de bloque y luego (si hay un empate) en función del punto final derecho? ¿Cuál es la intuición detrás de esto?
- Cómo aprender a utilizar el algoritmo lenguaje de programación
- Cómo reducir los componentes fuertemente conectados en nodos únicos de manera eficiente si estoy usando una representación de lista de adyacencia
- Algoritmos: ¿Cómo reduzco la latencia en HFT?
- Cómo desglosar un problema y resolverlo con el uso de la programación Java
Ayuda muchísimo si tienes una aplicación que necesita una lista. Una cosa es escribir una para pasar algunas pruebas unitarias; otra es escribir una que satisfaga las necesidades de una aplicación.
Máquinas estatales: en la escuela, una vez me asignaron la tarea de escribir algo que resolviera ecuaciones como:
X = (1 + 2) * (3 * (4 + 5 * 6)) / 7
Eso fue un poco divertido. Estábamos estudiando gramáticas y máquinas de estado en ese momento, y este ejercicio fue una forma divertida de unir esas ideas.
Protocolos de red: escriba algo que pueda recuperar páginas web a través de HTTP. No tiene que mostrarlos, solo guárdelos en el disco. Para obtener puntos de bonificación, guarde también las imágenes en línea. Para obtener más puntos de bonificación, escriba algo que descargue sitios web completos, y no deje que se ejecute sin supervisión, ¡o se avergonzará!
Luego escriba un servidor HTTP y pruébelo con dos o tres navegadores, y su propio cliente HTTP.
Si eso fue divertido, intente nuevamente con SMTP … Escriba algo que pueda enviar correo a través de SMTP. Pruébelo con el servidor SMTP de su ISP. Cuando lo haga funcionar, escriba algo que pueda recibir mensajes a través de SMTP. Envíele correo desde algunas piezas de software diferentes, incluida la suya.