У меня есть абстрактный тип данных, который можно рассматривать как список, хранящийся слева направо, со следующими возможными операциями: Нажмите: добавьте новый элемент в левый конец списка. Pop: удалите элемент в левом конце списка. Pull: удалить элемент в правом конце списка
Внедрите это, используя три стека и постоянную дополнительную память, так что время амортизации для любой операции push, pop или pull постоянно. Стеки имеют основные операции: isEmpty, Push и Pop.
Амортизированное время означает: "Если я потрачу такое количество времени, я могу потратить еще один его блок и сохранить его в банке времени, который будет использоваться позже". например, для каждой операции push, тратите три блока постоянного времени, поэтому для каждого нажатого элемента у вас есть 2 дополнительных блока постоянного времени.