Я не проверял это, но оно должно работать.
[edit] Изменена программа для учета всегда существующей головы.
[edit] Изменена программа для учета классавместо struct
bool isEmpty(){return (this->head == NULL)};
Это даст более правильный результат
Еще одна вещь, я вижу, что вы используете system ("pause") ;.Я знаю, что это домашнее задание, но это крайне плохая практика.Лучшим способом было бы сначала очистить буфер в stdin (при необходимости), а затем игнорировать символ.Примером может быть:
cin >> somenumber; // Extract a number (assuming its safe)
cin.ignore(1, 10); // Ignore 1 character, or a newline, whichever comes first
// ^ this clears the buffer, it does NOT wait for input since
// the formatted extraction left a character in the buffer ('\n')
cin.ignore(); // Essentially the same as above, but since there is nothing in
// the buffer, it reads a single character from stdin