我想在我的Alloy程序中使用队列。但是,tutorial I got from the internet如下:
但是,这里检查了我们关于建立队列的逻辑是否正确。但是我想使用入队,出队,大小函数来管理队列中的元素。我被困在该怎么做。到目前为止,我在实现目标方面有以下解决方案。但我不确定这是否正确。或者如何从我的代码中调用这些函数。
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
}