合金中的队列实现

时间:2019-04-14 20:53:04

标签: queue alloy declarative-programming

我想在我的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
}

0 个答案:

没有答案