Una pila es una estructura LIFO (último en entrar, primero en salir). Puedes empujar (push) valores en la pila o quitarlos tirando de ellos (pop). El último valor que se empujó en la lista es el primero al que se accede al tirar de la lista. Es como si vas poniendo un libro encima de otro: cuando quieras coger un libro, el último que pusiste estará encima de todos los demás y será el que cojas. Las pilas se utilizan para gestionar interrupciones o cuando se usan funciones recursivas:
ds_stack_create()
Crea una nueva pila. La función devuelve un número entero con la id de la pila
para usarla en las diferentes funciones. Puedes crear varias pilas.
ds_stack_destroy(id)
Destruye la pila, liberando
la memoria usada. No olvides usar esta función cuando ya no necesites la pila.
ds_stack_clear(id)
Limpia la pila, borrando todos los valores que contiene pero no la destruye.
ds_stack_size(id)
Devuelve el número de valores en la pila.
ds_stack_empty(id)
Devuelve true si la pila está vacía. Es lo mismo que chequear si el
número de valores en la pila es cero.
ds_stack_push(id,val)
Empuja el valor dentro de la pila.
ds_stack_pop(id)
Devuelve el valor al final de la pila (esto es, el último valor introducido) y
lo elimina de la pila.
ds_stack_top(id)
Devuelve el valor al principio de la pila (el primero que se introdujo) pero no
lo elimina.