Изменения

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

Дек

41 байт добавлено, 17:41, 3 января 2016
м
Нет описания правки
== Определение ==
[[Файл:deque1.png|thumb|right|200px|Дек]]
'''Дек''' (от англ. ''deque'' {{---}} double ended queue) {{---}} структура данных, представляющая из себя список элементов, в которой добавление новых элементов и удаление существующих производится с обоих концов. Дек можно воспринимать как двустороннюю очередь или двусторонний стек. Он имеет следующие операции:
* <tex> \mathtt{empty} </tex> {{---}} проверка на наличие элементов,
* <tex> \mathtt{popBack} </tex> (снятие с конца) {{---}} операция удаления конечного элемента,
* <tex> \mathtt{pushFront} </tex> (запись в начало) {{---}} операция вставки нового элемента в начало,
* <tex> \mathtt{popFront} </tex> (снятие с начала) {{---}} операция вставки удаления начального элемента.
==Реализации==
Дек состоит из элементов <tex>\mathtt {d[d.tail\dots d.head]}</tex>. Если очень много раз добавлять в начало и столько же раз удалять конечные элементы, то скоро мы дойдем до границы, имея немного элементов, при этом добавление в начало вызовет переполнение (в данной реализации во внимание не берется). Если в деке верно равенство <tex>\mathtt{d.tail = d.head}</tex>, то такой дек пуст и изъятие из него может привести к ошибке.
---  Все операции выполняются за <tex>\mathtt{O(1)}</tex>.
=== На саморасширяющемся массиве ===
---
39
правок

Навигация