Las listas enlazadas son estructuras de datos fundamentales que permiten almacenar datos en una secuencia de nodos con punteros que apuntan al siguiente nodo. A diferencia de los arrays, el orden de los elementos enlazados puede ser diferente al orden de almacenamiento físico en memoria. Las pilas son una estructura de datos de entradas ordenadas que solo se introduce y elimina por un extremo, llamado cima o tope. Ambas son estructuras dinámicas que permiten añadir o eliminar nodos en cualquier lugar, aunque la lista enlazada no permite un acceso aleatorio.

Cada elemento de la lista contiene uno o varios campos con los datos y un puntero apuntando a la dirección donde está ubicado el siguiente nodo. Cada objeto de la lista se llama nodo y contiene como se ha dicho los datos y un puntero al siguiente elemento.
La lista comienza desde la pila con un puntero apuntando al primer nodo, después el primer nodo tiene un puntero apuntando al segundo nodo y así sucesivamente hasta que el puntero del último nodo contiene null.
Un nodo es una variable de un tipo dado, entero, cadena, etc. almacenada en la memoria. En este caso es una variable de tipo object. Un puntero es un dato que contiene la dirección del siguiente nodo. En este caso es un objeto de tipo nodo que apunta al siguiente nodo llamado next.
Para insertar un nuevo elemento en la lista se sigue la siguiente secuencia:
Las etapas para insertar un elemento en una lista vacía son las siguientes:
Una pila es una estructura de datos de entradas ordenadas tales que solo se introduce y elimina por un extremo, llamado cima o tope.
<aside> 💡 Una pila siempre tendrá esta estructura

</aside>
