Antes de conocer el tipo de datos abstractos, debemos saber qué es una estructura de datos.
¿Qué es la estructura de datos?
Una estructura de datos es una técnica para organizar los datos de modo que puedan utilizarse de manera eficiente. Hay dos formas de ver la estructura de datos:
¿Por qué estructura de datos?
Las siguientes son las ventajas de utilizar la estructura de datos:
- Estos son los ingredientes esenciales que se utilizan para crear algoritmos rápidos y potentes.
- Nos ayudan a gestionar y organizar los datos.
- Las estructuras de datos hacen que el código sea más limpio y fácil de entender.
¿Qué es el tipo de datos abstractos?
Un tipo de datos abstracto es una abstracción de una estructura de datos que proporciona sólo la interfaz a la que debe adherirse la estructura de datos. La interfaz no proporciona ningún detalle específico sobre algo que se debe implementar o en qué lenguaje de programación.
En otras palabras, podemos decir que los tipos de datos abstractos son entidades que son definiciones de datos y operaciones pero que no tienen detalles de implementación. En este caso, conocemos los datos que estamos almacenando y las operaciones que se pueden realizar con los datos, pero no conocemos los detalles de implementación. La razón por la que no hay detalles de implementación es que cada lenguaje de programación tiene una estrategia de implementación diferente, por ejemplo; una estructura de datos C se implementa utilizando estructuras, mientras que una estructura de datos C++ se implementa utilizando objetos y clases.
Por ejemplo, una Lista es un tipo de datos abstracto que se implementa mediante una matriz dinámica y una lista vinculada. Una cola se implementa utilizando una cola basada en listas vinculadas, una cola basada en matrices y una cola basada en pilas. Un mapa se implementa utilizando un mapa de árbol, un mapa hash o una tabla hash.
Modelo de tipo de datos abstracto
Antes de conocer el modelo de tipo de datos abstracto, debemos conocer la abstracción y la encapsulación.
listas css
Abstracción: es una técnica para ocultar los detalles internos al usuario y solo mostrarle los detalles necesarios.
Encapsulación: es una técnica de combinar los datos y la función miembro en una sola unidad que se conoce como encapsulación.
La figura anterior muestra el modelo ADT. Hay dos tipos de modelos en el modelo ADT, es decir, la función pública y la función privada. El modelo ADT también contiene las estructuras de datos que estamos usando en un programa. En este modelo, se realiza la primera encapsulación, es decir, todos los datos se empaquetan en una sola unidad, es decir, ADT. Luego, se realiza la abstracción significa mostrar las operaciones que se pueden realizar sobre la estructura de datos y cuáles son las estructuras de datos que estamos utilizando en un programa.
Entendamos el tipo de datos abstracto con un ejemplo del mundo real.
Si consideramos el teléfono inteligente. Nos fijamos en las altas especificaciones del teléfono inteligente, tales como:
- 4 GB de RAM
- Procesador Snapdragon de 2,2 GHz
- Pantalla LCD de 5 pulgadas
- Cámara doble
- Android 8.0
Las especificaciones anteriores del teléfono inteligente son los datos y también podemos realizar las siguientes operaciones en el teléfono inteligente:
nbsp
El teléfono inteligente es una entidad cuyos datos o especificaciones y funcionamiento se detallan anteriormente. La vista y las operaciones abstractas/lógicas son las vistas abstractas o lógicas de un teléfono inteligente.
La vista de implementación de la vista abstracta/lógica anterior se proporciona a continuación:
class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); }
El código anterior es la implementación de las especificaciones y operaciones que se pueden realizar en el teléfono inteligente. La vista de implementación puede diferir porque la sintaxis de los lenguajes de programación es diferente, pero la vista abstracta/lógica de la estructura de datos seguirá siendo la misma. Por lo tanto, podemos decir que la vista abstracta/lógica es independiente de la vista de implementación.
Nota: Conocemos las operaciones que se pueden realizar en los tipos de datos predefinidos como int, float, char, etc., pero no conocemos los detalles de implementación de los tipos de datos. Por tanto, podemos decir que el tipo de datos abstracto se considera como el cuadro oculto que oculta todos los detalles internos del tipo de datos.
Ejemplo de estructura de datos
Supongamos que tenemos una matriz de índice de tamaño 4. Tenemos una ubicación de índice que comienza en 0, 1, 2, 3. La matriz es una estructura de datos donde los elementos se almacenan en una ubicación contigua. La dirección de memoria del primer elemento es 1000, el segundo elemento es 1004, el tercer elemento es 1008 y el cuarto elemento es 1012. Como es de tipo entero ocupará 4 bytes y la diferencia entre las direcciones de cada elemento es 4 bytes. Los valores almacenados en una matriz son 10, 20, 30 y 40. Estos valores, las posiciones de índice y las direcciones de memoria son las implementaciones.
La vista abstracta o lógica de la matriz de números enteros se puede expresar como:
- Almacena un conjunto de elementos de tipo entero.
- Lee los elementos por posición, es decir, índice.
- Modifica los elementos por índice.
- Realiza clasificación
La vista de implementación de la matriz de enteros:
a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50