16. Aufgabe:
Zur Speicherung von eindimensionalen Mustern wurden in der Aufgabe 13
folgende Datenstrukturen definiert:
CONST PATTERN_LENGTH = 16; TYPE COLOR = (WHITE, BLACK); PATTERN = ARRAY [0..PATTERN_LENGTH-1] OF COLOR; TREE = POINTER TO NODE; NODE = RECORD color: COLOR; left, right: TREE; END;
PROCEDURE BlackPixels(t : TREE) : CARDINAL
Funktionalität: Liefert die Anzahl der schwarzen Pixel des Musters das durch den Binärbaum t repräsentiert wird. Diesen Wert ermitteln Sie bitte auf dem Binärbaum selbst, nicht durch explizite oder implizite Umwandlung des Baumes in die zugehörige 0-1-Folge!
Implementieren Sie hierfür eine Prozedur ShakerSort für linked lists ( array-Version: siehe Aufgabe 15). Bei den Vertauschungsoperation in der Sortierung der Liste sollen die Elemente der Liste vertauscht werden, nicht die Information die in den Listenelementen gespeichert ist.
Testen Sie die von Ihnen implementierten Prozeduren, mit der
folgenden Mustersequenz
(0 : schwarz, 1 : weiss) :
0000-1101-0000-0000 0100-0000-1011-0000 0010-0001-1000-0010 0000-0000-0011-0000 0000-0101-0011-0100 1111-0001-0000-1111 0101-0100-1010-1010