Стеки

Дата-структуры стека - это так называемые LIFO структуры (Last-In First-Out). Вы можете загрузить значения в стек, удалить, или выгрузить их из стека. Значение, которое было выгружено в стек, должно быть первоначальным, чтобы выгрузиться из него снова. Стеки часто используются когда есть прерывания, чтобы оперировать; или когда имеются рекурсивные функции. Для стеков существуют следующие функции:

ds_stack_create() Создаёт новый стек. Функция возвращает целое как id, что должно быть использовано во всех других функциях, чтобы иметь доступ к конкретному стеку. Вы можете создать многочисленные стеки.
ds_stack_destroy(id) Уничтожает стек с заданным id, освобождая используемую память. Не забывайте вызывать эту функцию, когда у Вас готова структура.
ds_stack_clear(id) Очищает стек с заданным id, удаляя все данные из него, но его не уничтожая.
ds_stack_copy(id,source) Копирует стек source в стек с заданным id.
ds_stack_size(id) Возвращает количество хранящихся значений в стек.
ds_stack_empty(id) Возвращает, если стек пуст. Это так же теститрует, если размер - 0.
ds_stack_push(id,val) Загружает значение в стек.
ds_stack_pop(id) Возвращает значение на верх стека и удаляет это значение из него.
ds_stack_top(id) Возвращает значение на верх стека, но не удаляет это значение из него.
ds_stack_write(id) Превращает дата-структуру в строку и возвращает эту строку. Строка может использоваться, например, чтобы сохранить ее в файл. Это обеспечивает простой механизм сохранения дата-структур.
ds_stack_read(id,str) Читает дата-структуру из данной строки (которая создана предыдущим запросом).