交换两个可变值

时间:2017-02-28 04:57:42

标签: queue ocaml

这是作为队列

的结构给出的
 type 'a dqnode = {
 v: 'a;
 mutable next: 'a dqnode option;
 mutable prev: 'a dqnode option;
}

type 'a deque = {
mutable head: 'a dqnode option;
mutable tail: 'a dqnode option;
}

我试图反转队列,我知道我想切换每个节点的指针。例如,如果我将队列中的dqnode选项与某些n匹配,那么我想更改n.next< - n.prev和n.prev(在原始状态下)< - n.next

有没有办法在我的代码开头存储一个dqnode选项,以便我可以切换两个指针?

类似的东西:

let newnode1:'a dqnode option = n.prev in 
n.prev <- n.next; n.next <- newnode1

否则,我最终会在n.next位置找到两个指针。

1 个答案:

答案 0 :(得分:1)

您对问题的描述完全正确,您提出的解决方案也是正确的。