Изменения

Перейти к: навигация, поиск

Персистентный стек

24 байта добавлено, 21:16, 5 июня 2015
Эффективная реализация
Тогда операции push и pop будут иметь следующий вид:<br>
* <tex> \mathrm{push}(i, x)</tex> {{---}} добавляет элемент х в стек с номером i, результирующий стек будет иметь номер <tex> n + 1 </tex>.
'''function ''' push(i : '''uint''', x : '''T'''): s.top = s.top + 1; s[s.top].value = x; s[s.top].prev = i;
* <tex>\mathrm{pop}(i)</tex> {{---}} возвращает значение, хранящееся в элементе с номером i и копирует элемент, предыдущий для него.
результирующий стек будет иметь номер <tex> n + 1 </tex>.
'''T ''' pop(i : '''uint'''): T k = s[i]; k = s[k.prev]; push(k.prev, k.value);
== Пример ==

Навигация