Нет.
Делал одинаковыми - результат тоже был не корректный.
Вот данные в файле:
tete
wwww
eeee
rrrr
hhhh
hhhh
5555
5555
ttert
qweqzs
hfghfd
После вызова функции получаем :
hhhh
5555
hfghfd
Если сделать первый и последний одинаковый, при этом оставив всё остальное так-же получим такой-же результат, т.е.:
hhhh
5555
hfghfd
Но ведь сначало мы первый элемент сравниваем с последним и результат hfghfd должен стоять на первом месте, а потом уже hhhh и 5555.
Выходит, что первый элемент вообще не проверяеться, а посдений всегда выводиться.
Если Вы о том, что без считывания из файла функция show крашит екзешник - это не страшно.

А вот с одним элементом работает отлично - выводит его.