Изменения

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

Стек

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

Навигация