/*======================================================================== * wiederverwendbare bibliothek fuer binäre suche *=======================================================================*/ /*-- Anwender muss einen Array zur Verfuegung stellen, dessen Elemente in der ersten Komponente auf den Schluesselwert verweisen und in der 2. Komponente auf die Nutzdaten. Die tatsaechliche Struktur der Nutzdaten ist fuer die binaere Suche irrelevant. --*/ typedef struct { void *key; /* Zeiger auf Schluessel */ void *data; /* Zeiger auf Nutzdaten */ } my_array_t; /* Die Anwendung ruft Bibliotheksfunktion binSearch() auf: theKey: Zeiger auf den Schluesselwert des gesuchten Datensatzes. a : Zeiger auf den Beginn des Arrays. len : Anzahl der Array-Elemente */ extern void *binSearch(void *theKey, my_array_t *a, unsigned int len ); /* Die Anwendung muss eine Vergleichsfunktion compareTo() zur Verfuegung stellen, welche die ==, <, > Vergleiche auf dem Datentyp der verwendeten Schluessel durchfuehrt. Sie liefert einen beliebigen Wert < 0 zurueck, wenn k1 in dieser Vergleichsrelation kleiner als k2 ist, einen beliebigen Wert > 0, falls k1 > k2 und 0 bei Gleichheit beider Schluessel. */ extern int compareTo(void *k1, void *k2);