Pila : una pila es una estructura de datos lineal en la que los elementos se pueden insertar y eliminar solo de un lado de la lista, llamado la parte superior . Una pila sigue el principio LIFO (Last In First Out), es decir, el último elemento insertado es el primero en salir. La inserción de un elemento en una pila se denomina operación de inserción y la eliminación de un elemento de la pila se denomina operación de extracción . En la pila, siempre hacemos un seguimiento del último elemento presente en la lista con un puntero llamado top .
La representación esquemática de la pila se da a continuación:
Array : una array es una colección de elementos almacenados en ubicaciones de memoria contiguas. La idea es almacenar varios artículos del mismo tipo juntos. Esto facilita el cálculo de la posición de cada elemento simplemente agregando un desplazamiento a un valor base, es decir, la ubicación de memoria del primer elemento de la array (generalmente indicado por el nombre de la array).
La representación esquemática de Array se da a continuación:
Diferencia entre estructuras de datos de pila y array:
Base de comparación | pilas | Formación |
---|---|---|
Definición | Stack es una estructura de datos lineal representada por una colección secuencial de elementos en un orden fijo | Una array es una colección de valores de datos relacionados llamados elementos, cada uno identificado por una array indexada |
Principio | Las pilas se basan en el principio LIFO, es decir, el último elemento insertado es el primer elemento que sale de la lista. | En la array, los elementos pertenecen a los índices, es decir, si desea ingresar al cuarto elemento, debe escribir el nombre de la variable con su índice o ubicación dentro del corchete, por ejemplo, arr [4] |
Operaciones | La inserción y el borrado en las pilas tienen lugar solo desde un extremo de la lista llamado la parte superior. | La inserción y la eliminación en la array se pueden realizar en cualquier índice de la array. |
Almacenamiento | La pila tiene un tamaño dinámico. | La array tiene un tamaño fijo. |
Tipos de datos | La pila puede contener elementos de diferentes tipos de datos. | La array contiene elementos del mismo tipo de datos. |
Métodos | Solo podemos hacer una búsqueda lineal. | Podemos hacer búsquedas tanto lineales como binarias. |
Acceso a los datos | No se permite el acceso aleatorio a elementos en pilas | Se permite el acceso aleatorio a los elementos en las arrays |
Implementación | Podemos implementar una pila usando la array | No podemos implementar una array usando stack |
Métodos | Hay un número limitado de operaciones que se pueden realizar en una pila: push, pop, peek, etc. | Es rico en métodos u operaciones que se pueden realizar en él, como ordenar, atravesar, invertir, empujar, hacer estallar, etc. |
Punteros | Solo tiene un puntero: la parte superior. Este puntero indica la dirección del elemento superior o el último insertado de la pila. | En las arrays, la memoria se puede asignar en tiempo de compilación y también se conoce como asignación de memoria estática. |
Análisis de Complejidad:
Operación | Pila | Operación | Formación |
empujar | O(1) | Insertar | En) |
estallido | O(1) | Borrar | En) |
ojeada | O(1) | Acceso | O(1) |
esta vacio | O(1) | El recorrido | En) |