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.
TYPE btree = POINTER TO brecord;
brecord = RECORD wert: atom;
left, right: btree;
END;
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.