Hello. I faced a problem trying to sort list alphabetically and then by number.
e.g.
surname name A 8
surname name B 1
surname name B 2
Here is my code what i tried so far
Code:
void insert( ListPtr *sPtr, float value, char surname[50], char name[50], char alpha )
{
ListPtr newPtr, previousPtr, currentPtr;
newPtr = (ListPtr) malloc( sizeof( List ) );
if ( newPtr != NULL ) {
strncpy (newPtr->surname, surname, 50);
strncpy (newPtr->name, name, 50);
newPtr->alpha = alpha;
newPtr->value = value;
newPtr->nextPtr = NULL;
previousPtr = NULL;
currentPtr = *sPtr;
while ( currentPtr != NULL && value > currentPtr->value && (int)currentPtr->alpha >=(int)alpha ) {
previousPtr = currentPtr;
currentPtr = currentPtr->nextPtr;
}
if ( previousPtr == NULL ) {
newPtr->nextPtr = *sPtr;
*sPtr = newPtr;
}
else {
previousPtr->nextPtr = newPtr;
newPtr->nextPtr = currentPtr;
}
}
else
printf( " Error.\n", );
}
I am getting my list sorted only by "value" but not alphabetically.