Изменения

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

Стек

43 байта добавлено, 22:59, 12 июня 2014
На саморасширяющемся массиве
* <tex>newStack[0..newSize]</tex> {{---}} новый массив, в котором хранится стек
* <tex>head</tex> {{---}} верхушка стека
* <tex>sizecapacity</tex> {{---}} размер стека
'''function''' push(element : '''T'''):
'''if''' head == size capacity - 1 '''T''' newStack[size capacity * 2] '''for''' i = 0 '''to''' size capacity - 1
newStack[i] = s[i]
s = newStack
size capacity = size capacity * 2
head++
s[head] = element
temp = head
head--
'''if''' head < size capacity / 4 '''T''' newStack[size capacity / 2] '''for''' i = 0 '''to''' size capacity / 4 - 1
newStack[i] = s[i]
s = newStack
size capacity = size capacity / 2
'''return''' s[temp]
215
правок

Навигация