deferred class interface AVL_HELPER[E->COMPARABLE]
feature(s) from AVL_HELPER
-- Interface used by descendants:
new_node (e: E): AVL_NODE[E]
require
e /= Void
ensure
--old lost_nodes.count > 0 implies
-- (lost_nodes.count = old lost_nodes.count - 1
-- and then Result = old lost_nodes.last)
discard_node (n: AVL_NODE[E])
require
n /= Void
ensure
discarded: lost_nodes /= Void implies lost_nodes.count = old lost_nodes.count + 1
feature(s) from AVL_HELPER
-- Internals:
lost_nodes: COLLECTION[AVL_NODE[E]]
-- Keeps discarded nodes to avoid memory leaks. Should be a once function. May return Void if lost
-- nodes are not kept.
a_new_node (e: E): AVL_NODE[E]
require
e /= Void
ensure
Result /= Void;
Result.item = e
end of deferred AVL_HELPER[E->COMPARABLE]