Изменения

Перейти к: навигация, поиск

Treiber stack

129 байт добавлено, 14:22, 30 сентября 2018
Псевдокод: EmptyStackException
== Псевдокод ==
fun '''pop'''(): Int { while (true) { <font color=green>//Cas loop</font>
head = H
if (CAS (&H, head, head.next))
}
}
fun '''push'''(x: Int) { while (true) { <font color=green>//Cas loop</font>
head = H
if (head == null)
throw new EmptyStackException();
newHead = Node {value: x, next: head}
if (CAS (&H, head, newHead))
16
правок

Навигация