this is a quick sort function that receives a singly linked list and a function pointer that is called before it has to be done recursive function. this is what i have so far

```
template <typename T>
void quicksort(SinglyLinkedList<T> & A, bool (* before)(T &, T &))
{
typename SinglyLinkedList<T>::iterator itBegin itEnd;
itBegin = A.begin();
itEnd = A.end();
int max = size();
int pivot = A.begin;
if(max <= 1)
{return;}
while(itBegin < itEnd)
{
while(itBegin < pivot)
{
itBegin++;
}
while(itEnd > pivot)
{
itEnd--;
}
if(itBegin <= itEnd)
Node *tmp = itBegin;
itBegin = itEnd;
itEnd = tmp;
}
while()
quicksort(,)
}
```