Pensé que la matriz asociativa (es decir, el mapa o el diccionario) y la tabla hash eran el mismo concepto, hasta que vi en Wikipedia que
Para los diccionarios con un número muy pequeño de enlaces, puede tener sentido implementar el diccionario utilizando una lista de asociación, una lista vinculada de enlaces. ...
La implementación de propósito general más utilizada de una matriz asociativa es con una tabla hash: una matriz de enlaces, junto con una función hash que asigna cada clave posible en un índice de matriz. ...
Los diccionarios también se pueden almacenar en árboles de búsqueda binarios o en estructuras de datos especializadas para un tipo particular de claves, como árboles de radix, tries, matrices de Judy o árboles de van Emde Boas. ...
Entonces, creo que mi problema radica en que no sé si la matriz asociativa (es decir, el mapa o el diccionario) es un tipo de datos abstractos y la tabla hash es una estructura de datos concreta, y se pueden usar diferentes estructuras de datos concretas para implementar el mismo tipo de datos abstractos.
Mis preguntas serían
¿Cuál es la diferencia y la relación entre las estructuras de datos abstractos y las estructuras de datos concretas?
¿Qué ejemplos hay para cada uno de ellos (estructuras de datos abstractas y concretas)? Mientras más, mejor.
¿Existe una lista de qué estructuras de datos concretas se pueden usar para implementar qué estructuras de datos abstractas? Sería bueno tener uno.