record Node
function constructor(self, left, right) begin
self.left = left
self.right = right
return self
end
function print(self, indent) begin
if indent then for i=1 to indent then print(" ")
if self.left.prototype == Node begin
print("[node]\n")
self.left.print(indent+1)
end
else print(self.left, "\n")
if indent then for i=1 to indent then print(" ")
if self.right.prototype == Node begin
print("[node]\n")
self.right.print(indent+1)
end
else print(self.right, "\n")
end
function reverse(self) begin
left = self.left
self.left = self.right
self.right = left
if self.left.prototype == Node then self.left.reverse()
if self.right.prototype == Node then self.right.reverse()
end
end
a = Node(Node(Node("D", "C"), "B"), "A")
a.reverse()
a.print(0)