Изменения
→Структура очереди
== Структура очереди ==
Очередь моделируется с помощью односвязного спискапостроена на односвязном списке. Каждый элемент списка (<tex>Node</tex>) содержит ссылку на хранимые в нём данные и атомарный указатель на следующий элемент списка (который можно менять атомарно).
 '''case class''' Node('''val''' data: '''Int''', '''val''' next: AtomicReference<Node>)
Если узел <tex>node</tex> является последним в списке, то его <tex>nodenext</tex> указывает на <tex>null</tex>.
Сама очередь состоит из двух атомарных указателей: на голову  <tex>H</tex>  на голову и на хвост <tex>T</tex>, которые можно менять атомарнона  хвост. Удаление из очереди происходит со стороны головы, добавление - со стороны хвоста.
 '''class''' Queue
