Динамические структуры данных: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 270:
node.Next.'''Previous''' = node
List.'''Count''' += 1
 
===Вставка перед целевым узлом - InsertBefor===
Пусть '''TNode<T>''' node - новый узел списка List, '''TNode<T>''' target - узел списка List (target.Value == targetValue), перед которым будет добавлен node, а '''TNode<T>''' ancillary - узел списка List (ancillary.Next == target), который может ссылаться на node, тогда:
if (List.'''Count''' == 0) then
error
var node = new TNode<'''T'''>(value, List.'''Head''', null)
if (List.Head.'''Value''' == target.'''Value''') then
{
List.Head.'''Previous''' = node
List.'''Head''' = node
else
{
node.'''Next''' = target
node.'''Previous''' = ancillary
ancillary.'''Next''' = node
}
List.'''Count''' += 1
 
<!--
===Вставка перед целевым узлом - InsertBefor===