Изменения

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

Дек

70 байт убрано, 14:25, 10 января 2016
Простая реализация
Ключевые поля:
* <tex>\mathtt{d[0\dots 2 \times n - 1]}</tex> {{---}} массив, с помощью которого реализуется дек, способный вместить не более <tex>n</tex> элементов,
* <tex>\mathtt{d.head}</tex> {{---}} индекс головы дека,* <tex>\mathtt{d.tail}</tex> {{---}} индекс хвоста.
Дек состоит из элементов <tex>\mathtt {d[d.head\dots d.tail - 1]}</tex>. Если происходит максимум <tex>\mathtt {n}</tex> добавлений, то массив длины <tex>\mathtt {2 \times n}</tex> может вместить в себя все добавленные элементы.
'''boolean''' empty():
'''return''' d.head == d.tail
'''function''' pushBack(x : '''T'''):
d[d.tail] = x d.tail = d.tail + 1+
'''T''' popBack():
'''if''' (empty())
'''return''' <span style="color:red">error</span> "underflow"
d.tail = d.tail - 1- '''return''' d[d.tail]
'''function''' pushFront(x : '''T'''):
d.head = d.head - 1-
d[d.head] = x
'''if''' (empty())
'''return''' <span style="color:red">error</span> "underflow"
'''T''' ret = d[d.head] d.head = d.head + 1+
'''return''' ret
Анонимный участник

Навигация