C
Du mußt dort einen Funktionszeiger übergeben:
int compare(void* l,void* r)
{
//vergleiche *l und *r
}
...
sort(anfang,compare);
In der Funktion sort() kannst du den übergebenen Parameter so nutzen, als ob er eine Funktion wäre:
void sort(dlist* head,int(*comp)(void*,void*))
{
...
//Vergleich zweier Elemente:
if(comp(pos1->data,pos2->data))...
...
}