- <staticvoidinit(constnode_ptr&this_node); >Эффекты: Построен неиспользуемый элемент списка, поставив следующий указатель на нуль:<NodeTraits::get_next(this_node) == node_ptr()>
 Сложность: Постоянная Бросает: Ничего. 
- <staticboolunique(const_node_ptrthis_node); >Требуется: Этот узел должен быть в круговом списке или быть пустым круговым списком. Эффекты: Верно, что «это_узел» является единственным узлом кругового списка: или это не вставленный узел:<return node_ptr() == NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node>
 Сложность: Постоянная Бросает: Ничего. 
- <staticboolinited(const_node_ptrthis_node); >Эффекты: Верно, что "этот_узел" имеет то же состояние, как если бы он был введен с использованием "init(node_ptr)" Сложность: Постоянная Бросает: Ничего. 
- <staticvoidunlink_after(constnode_ptr&prev_node); >Требуется: Узел prev_node должен находиться в круговом списке или быть пустым круговым списком. Эффекты: Отключает следующий узел prev_node из кругового списка. Сложность: Постоянная Бросает: Ничего. 
- <staticvoidunlink_after(constnode_ptr&prev_node,
                        constnode_ptr&last_node);>Требуется: prev_node и last_node должны находиться в круговом списке или быть пустым круговым списком. Эффекты: Отсоединяет диапазон (prev_node, last_node) от линейного списка. Сложность: Константа Бросает: Ничего. 
- <staticvoidlink_after(constnode_ptr&prev_node,constnode_ptr&this_node); >Требуется: prev_node должен быть узлом линейного списка. Эффекты: Связывает этот_узл после prev_узла в линейном списке. Сложность: Постоянная Броски: Ничего. 
- <staticvoidtransfer_after(constnode_ptr&p,constnode_ptr&b,
                          constnode_ptr&e);>Требуется: b и e должны быть узлами одного и того же линейного списка или пустого диапазона. p должен быть узлом другого линейного списка. Эффекты: Удаляет узлы из (b, e) диапазона от их линейного списка и вставляет их после p в линейный список p. Сложность: Постоянная Бросает: Ничего. 
- <staticvoidinit_header(constnode_ptr&this_node); >Эффекты: Конструирует пустой список, делая этот узел единственным узлом кругового списка:<NodeTraits::get_next(this_node) == this_node>.
 Сложность: Константа Бросает: Ничего. 
- <staticnode_ptr
get_previous_node(constnode_ptr&prev_init_node,constnode_ptr&this_node); >Требуется: Этот_узл и prev_init_узл должны быть в одном линейном списке. Эффекты: Возвращает предыдущий узел этого_узла в линейном начале списка. Поиск по адресу prev_init_node. Первым узлом, проверенным на равенство, является NodeTraits::get_next (prev_init_node). Сложность: Линейный к числу элементов между prev_init_node и этим_node. Бросает: Ничего. 
- <staticstd::size_tcount(constconst_node_ptr&this_node); >Требуется: Этот узел должен быть в линейном списке или быть пустым линейным списком. Эффекты: Возвращает количество узлов в линейный список. Если линейный список пуст, возвращает 1. Сложность: Линейный Бросает: Ничего. 
- <staticvoidswap_trailing_nodes(constnode_ptr&this_node,
                               constnode_ptr&other_node);>Требуется: Этот_узл и другой_узл должны быть узлами, вставленными в линейные списки или пустыми линейными списками. Эффекты: Перемещает все узлы, ранее прикованные цепью после этого_узла после другого_узла и наоборот. Сложность: Постоянная Бросает: Ничего. 
- <staticnode_ptrreverse(constnode_ptr&p); >Эффекты: Обратный порядок элементов в списке. Возвращение: Новый первый узел списка. Бросает: Ничего. Сложность: Эта функция является линейной по отношению к содержащимся элементам. 
- <staticstd::pair<node_ptr,node_ptr>
move_first_n_backwards(constnode_ptr&p,std::size_tn); >Эффекты: Перемещает первые n узлов начиная с p в конец списка. Возвращение: Пара, содержащая новый первый и последний узел списка или если было какое-либо движение, нуль-пара, если n не приводит к движению. Бросок: Ничего. Сложность: Линейное число элементов плюс число перемещаемых позиций. 
- <staticstd::pair<node_ptr,node_ptr>
move_first_n_forward(constnode_ptr&p,std::size_tn); >Эффекты: Перемещает первые n узлов, начиная с p, в начало списка. Возвращение: Пара, содержащая новый первый и последний узел списка или если было какое-либо движение, нуль-пара, если n не приводит к движению. Бросок: Ничего. Сложность: Линейное число элементов плюс число перемещаемых позиций.