function istMaxHeap(inRefWurzel: tRefKnoten): Boolean; { Gibt true zurück, genau dann wenn der Baum ein Max-Heap ist. } var linksGroesser, rechtsGroesser: Boolean; begin if inRefWurzel = nil then {Der leere Baum ist ein (leerer) Max-Heap, da er keinen Knoten mit größerem Kind enthält.} istMaxHeap := true else begin {Untersuchung des Wurzelknotens und seiner Kinder} if inRefWurzel^.links = nil then linksGroesser := false else linksGroesser := inRefWurzel^.links^.info > inRefWurzel^.info; if inRefWurzel^.rechts = nil then rechtsGroesser := false else rechtsGroesser := inRefWurzel^.rechts^.info > inRefWurzel^.info; linksGroesser := linksGroesser or (not istMaxHeap(inRefWurzel^.links)); rechtsGroesser := rechtsGroesser or (not istMaxHeap(inRefWurzel^.rechts));
istMaxHeap:= not (linksGroesser or rechtsGroesser); end; end;