Дек — различия между версиями
Mutsch (обсуждение | вклад) |
Mutsch (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Определение == | == Определение == | ||
− | '''Дек''' (от англ. ''deque'' {{---}} double ended queue ()) {{---}} структура данных, представляющая из себя список элементов, в которой добавление новых элементов и удаление существующих производится с обоих концов. | + | '''Дек''' (от англ. ''deque'' {{---}} double ended queue ()) {{---}} структура данных, представляющая из себя список элементов, в которой добавление новых элементов и удаление существующих производится с обоих концов. Особой разницы между двумя концами нет, поэтому их можно воспринимать как конец 1 и конец 2. Дек можно воспринимать как двустороннюю очередь или двусторонний стек. Он имеет следующие операции: |
* <tex> \mathtt{empty} </tex> {{---}} проверка на наличие элементов, | * <tex> \mathtt{empty} </tex> {{---}} проверка на наличие элементов, | ||
− | * <tex> \mathtt{pushBack} </tex> {{---}} операция вставки нового элемента в конец, | + | * <tex> \mathtt{pushBack} </tex> (запись в конец) {{---}} операция вставки нового элемента в конец, |
− | * <tex> \mathtt{popBack} </tex> {{---}} операция удаления конечного элемента, | + | * <tex> \mathtt{popBack} </tex> (снятие с конца) {{---}} операция удаления конечного элемента, |
− | * <tex> \mathtt{pushFront} </tex> {{---}} операция вставки нового элемента в начало, | + | * <tex> \mathtt{pushFront} </tex> (запись в начало) {{---}} операция вставки нового элемента в начало, |
− | * <tex> \mathtt{popFront} </tex> {{---}} операция вставки начального элемента. | + | * <tex> \mathtt{popFront} </tex> (снятие с начала) {{---}} операция вставки начального элемента. |
− | == | + | ==Реализация на двусвязном списке== |
+ | Дек можно реализовать на двусвязном списке. При этом расходуется только <tex>O(n)</tex> памяти, на хранение самих элементов. | ||
+ | === List === |
Версия 12:26, 3 декабря 2015
Определение
Дек (от англ. deque — double ended queue ()) — структура данных, представляющая из себя список элементов, в которой добавление новых элементов и удаление существующих производится с обоих концов. Особой разницы между двумя концами нет, поэтому их можно воспринимать как конец 1 и конец 2. Дек можно воспринимать как двустороннюю очередь или двусторонний стек. Он имеет следующие операции:
- — проверка на наличие элементов,
- (запись в конец) — операция вставки нового элемента в конец,
- (снятие с конца) — операция удаления конечного элемента,
- (запись в начало) — операция вставки нового элемента в начало,
- (снятие с начала) — операция вставки начального элемента.
Реализация на двусвязном списке
Дек можно реализовать на двусвязном списке. При этом расходуется только
памяти, на хранение самих элементов.