我将此节点结构定义为
(defstruct node
parent
left
right
data)
当我填写父节点时,有没有办法以这样的方式来避免计算父节点时的无限递归?
例如:假设我有一个节点(A :parent B :left 2 :right 3 :data nil)
和一个节点(B :parent nil :left 4 :right A :data nil)
。当您评估A的父级时,您将获得无限递归(A的父级是B - > B' s右侧是A - > A的父级是B - > ...)。有没有办法避免这种情况,同时保持所有splay树操作的mlg(n)性能?
我很感激
答案 0 :(得分:3)
无限递归可能是打印的一部分。你可以通过以下方式避免这种情况:
(setf *print-circle* t)