Class: List
| Defined in: | lib/list.coffee |
| Inherits: | CSObject |
Overview
Список на основе узлов Node. Есть внутренний указатель,
который перемещается методами #next(), #prev(),
#begin(), #end() и значение получается всегда через
метод #get().
В результате вставок указатель всегда
указывает на тот же самый элемент, а индекс указателя #index
даптивно подстраивается. То же самое по возможности и при
изъятии узла, но если изымается элемент, на котором стоит указатель,
тогда он смещается к ближайшему узлу в сторону начала, а если
это не возможно, то ближайшему узлу в сторону конца.
Property Summary
- (Node) _f
- начало очереди для взятия O(1)
- (Node) _b
- конец очереди для добавления O(1)
- (Node) _p
- Указатель на текущий элемент
- (Number) length
- @read-only длина очереди
Class Method Summary
- . (List) fromArray(array) Создаёт список на основе массива с указателем на первом элементе
Instance Method Summary
- # (List) pushBack(some) Добавление одного элемента в список в конец
-
#
(List)
pushFront(some)
Добавление одной сущности
someв начало списка. - # (*) popFront() Взятие первого элемента из очереди.
- # (*) popBack() Изымает и возвращает последнее значение.
-
#
(List)
append(some)
Присоединяет сущность
someпосле указателя. -
#
(List)
prepend(some)
Присоединяет сущность
someперед указателем. -
#
(List)
add(first, list...)
Присоединяет сущности
someв самый конец списка -
#
(List|null)
go(step)
Перемещает указатель на
stepшагов относительно текущего положения. -
#
(List|null)
next()
То же, что и
#go(1) -
#
(List|null)
prev()
То же, что и
#go(-1) - # (List|null) begin() Перемещает указатель на самый первый узел
- # (List|null) end() Перемещает указатель на самый последний узел
- # (*) getFront() Возвращает значение первого узла без смещения указателя и без изменений списка.
- # (*) getBack() Возвращает значение последнего узла без смещения указателя и без изменения списка.
- # (*) get() Возвращает значение узла "под" указателем, не меняя список
- # (*) currentNode() Возвразает сам узел указателя
- # (List) swap(rev) Переставляет местами значения узлов (след./пред.
-
#
(List)
set(some)
Устанавливает значение указателя на
some -
~
(List|Array<Node>)
erase(start, end, returnNodes)
Удаляет элемент или несколько из списка, начиная с позиции
startи до позицииend(от начала), еслиreturnNodesравнаtrue, то удалённые узлы вернутся в виде массива из метода. - # (List|null) clear() Очистка всего списка.
- # (null) destructor() Удаляет все ссылки и очищает список, разрушая все узлы
Inherited Method Summary
Methods inherited from
CSObject
Class Method Details
.
(List)
fromArray(array)
Создаёт список на основе массива с указателем на первом элементе
Constructor Details
#
(void)
constructor()
Создаёт пустой список, устанавливает значения
Instance Method Details
#
(List)
pushBack(some)
Добавление одного элемента в список в конец
#
(List)
pushFront(some)
Добавление одной сущности some в начало списка.
При этом указатль остаётся на том же элементе, где и был,
а в случае пустого индекса указывает на новый узел.
Индекс же следит за указателем всегда.
#
(*)
popFront()
Взятие первого элемента из очереди. Указатель не смещается, если не удалён элемент указателя. Если же удалён, то он переходит на предыдущий элемент.
#
(*)
popBack()
Изымает и возвращает последнее значение.
#
(List)
append(some)
Присоединяет сущность some после указателя.
#
(List)
prepend(some)
Присоединяет сущность some перед указателем.
#
(List)
add(first, list...)
Присоединяет сущности some в самый конец списка
#
(List|null)
go(step)
Перемещает указатель на step шагов относительно текущего положения.
Если step < 0 тогда двигаемся к началу, а иначе к концу списка.
Если шаги выходят за рамки, то возвращается null.
#
(List|null)
next()
То же, что и #go(1)
#
(List|null)
prev()
То же, что и #go(-1)
#
(List|null)
begin()
Перемещает указатель на самый первый узел
#
(List|null)
end()
Перемещает указатель на самый последний узел
#
(*)
getFront()
Возвращает значение первого узла без смещения указателя и без изменений списка.
#
(*)
getBack()
Возвращает значение последнего узла без смещения указателя и без изменения списка.
#
(*)
get()
Возвращает значение узла "под" указателем, не меняя список
#
(*)
currentNode()
Возвразает сам узел указателя
#
(List)
swap(rev)
Переставляет местами значения узлов
(след./пред. относительно указателя). Если rev не равен true,
томеняемся со следующим узлом от указателя, иначе -- с прудыдущим.
#
(List)
set(some)
Устанавливает значение указателя на some
~
(List|Array<Node>)
erase(start, end, returnNodes)
~
(List|Array<Node>)
erase(start, returnNodes)
Удаляет элемент или несколько из списка, начиная
с позиции start и до позиции end (от начала),
если returnNodes равна true, то удалённые узлы
вернутся в виде массива из метода.
Если end не установлено, то удаляется только элемент
с индексом start
#
(List|null)
clear()
Очистка всего списка. Если список пуст уже, то вернётся null
#
(null)
destructor()
Удаляет все ссылки и очищает список, разрушая все узлы