El usuario de Quora ha dado una lista muy concreta, así que no me permitas repetir el ejercicio. Pero más bien, me gustaría darle algunos consejos generales.
1. Las bibliotecas de contenedores (plantillas, colecciones, genéricos) se pueden mejorar con un tipo específico de estructuras de datos. Por ejemplo,
En C #, puede ir a Graph o Set (STL) tiene un Trie : Tree : Graph etc., entiendo La lista y el diccionario contienen una implementación de estructura de datos muy avanzada detrás de ellos, por lo que no hay nada de malo en probarlos.
2. Estructuras de datos específicas para dominios: cada dominio tiene sus propios requisitos de estructuras de datos. por ejemplo, el cálculo numérico puede necesitar matrices espaciadas, el procesamiento de la señal puede necesitar estructuras basadas en cola / cola, etc. Puede cavar e implementar estas estructuras.
- ¿Cuál es la técnica para crear una solución DP iterativa a partir de su solución recursiva?
- ¿Cómo se puede averiguar el número de veces que se repite una palabra en una cadena usando Java?
- ¿Es posible el algoritmo de compresión que se muestra en Silicon Valley en realidad?
- ¿Hay algún patrón abstracto para medir qué tan bueno eres en algoritmos?
- ¿Los mismos algoritmos dan resultados diferentes en diferentes paquetes / idiomas?
3. Otra área rica, por supuesto, es DBMS o Bases de conocimiento. Aquí las estructuras finales aún no están finalizadas, como la forma en que representará a las redes semánticas, DHAN, ANN y cosas por el estilo. Puedes tener mucho espacio para experimentar allí.
Nuevamente, esto es adicional a lo que Aditya menciona a continuación y sirve como pautas genéricas.
Gracias,
RaviJ