Я хочу использовать очередь в моей программе сплавов.Тем не менее, учебник, который я получил из Интернета , выглядит следующим образом:
Но здесь мы проверяем правильность нашей логики построения очереди или нет.Но я хочу управлять своими элементами в очереди, используя функции enqueue, dequeue, size.Я застрял, как это сделать.Пока у меня есть следующее решение для достижения моей цели.Но я не уверен, правильно это или нет.Или как вызвать эти функции из моего кода.
sig Queue { root: Node }
sig Node { next: lone Node }
fun Enqueue[q, q': Queue, n: Node] : Node {
q'.root = n and n.next = q.root
n
}
fun Dequeue[q, q': Queue]: Node {
n = q.root.next and q'root = n
q.root
}
fun size[q: Queue]: Int{
#q.node
}