Class: CircularList
| Defined in: | lib/circular_list.coffee |
| Inherits: | CSObject |
Overview
Описывает циклический список, в котором нет начала или конца, есть только текущий указатель.
Property Summary
- (Node) _p
- указатель на текущий узел
- (Number) length
- @read-only длина списка
Class Method Summary
-
.
(CircularList)
fromArray(array)
Создать список из массива
arrayс указателем на первый элемент массива
Instance Method Summary
- # (CircularList) append(some) Присоединяет элемент следом за указателем, т.е.
- # (CircularList) prepend(some) Присоединяет элемент перед текущим, т.е.
- # (CircularList) add(first, list...) Присоединяет список аргументов после текущего.
-
#
(CircularList)
go(step)
Позволяет перейти по списку вперёд или назад на
stepшагов. - # (CircularList) next() Перейти к следующему узлу в списке
- # (CircularList) prev() Перейти к предыдущему элементу
- # (CircularList) get() Получить значение текущего элемента
- # (CircularList) currentNode() Получить текущий узел
- # (CircularList) set(some) Установить значение текущего элемента
-
#
(CircularList|Node)
erase(returnNodes = true)
Очистить список от текущего значения и вернуть его, если
returnNodes== true - # (CircularList) clear() Очистить список ото всех значений
- # (null) destructor() Удалить список и очистить все линки
Inherited Method Summary
Methods inherited from
CSObject
Class Method Details
.
(CircularList)
fromArray(array)
Создать список из массива array с указателем на первый элемент массива
Constructor Details
#
(void)
constructor()
Конструктор циклического списка создаёт первый узел без значения, и замыкает его указатели на самого себя.
Instance Method Details
#
(CircularList)
append(some)
Присоединяет элемент следом за указателем, т.е.
значение становится доступным при вызове .next().get().
#
(CircularList)
prepend(some)
Присоединяет элемент перед текущим, т.е. значение становится
достыпным при вызове .prev().get()
#
(CircularList)
add(first, list...)
Присоединяет список аргументов после текущего. Замечу, что принимает на вход множество аргументов, а не массив аргументов.
#
(CircularList)
go(step)
Позволяет перейти по списку вперёд или назад на step шагов.
Чтобы не кружить по списку, количесво шагов будет оптимизированно.
#
(CircularList)
next()
Перейти к следующему узлу в списке
#
(CircularList)
prev()
Перейти к предыдущему элементу
#
(CircularList)
get()
Получить значение текущего элемента
#
(CircularList)
currentNode()
Получить текущий узел
#
(CircularList)
set(some)
Установить значение текущего элемента
#
(CircularList|Node)
erase(returnNodes = true)
Очистить список от текущего значения и вернуть его,
если returnNodes == true
#
(CircularList)
clear()
Очистить список ото всех значений
#
(null)
destructor()
Удалить список и очистить все линки