ADT BTrees(T) ISEin Binärbaum ist kein Baum! Die wesentlichen Unterschiede sind:
SORTS:btree, T, boolean
OPERATIONS:newtree:
btree
node: T
btree
btree
btree
isempty: btree
boolean
root: btree
T
left: btree
btree
right: btree
btree
RULES:isempty(newtree) = true
isempty(node(x, l, r)) = false
root(node(x, l, r)) = x
left(node(x, l, r)) = l
right(node(x, l, r)) = r
END BTrees.
sie liefert uns auch sofort eine Darstellung für einen Wald durch einen äquivalenten Binärbaum. Für jeden (allgemeinen) Baum des Waldes gilt: in den linken Unterbaum des zugeordneten Binärbaumes kommen die Nachkommen, in den rechten Unterbaum die jüngeren Brüder samt ihren Nachkommen.TYPE btree = POINTER TO brecord; brecord = RECORD wert: atom; left, right: btree; END;