БлогNot. Комментарии к статье #923

С++: cортировка односвязного списка перестановкой указателей



Автор: asup IP: определён

http://www.ruspolymet.ru

А не могли бы Вы поподробнее расписать функцию сортировки, не понятно как происходит сравнение и перемещение элементов?

25.09.2013, 19:38

Ответ: q - элемент, с которого начинаем шаг, p - очередной, с которым сравниваем, pr - предыдущий, ph - только для контроля на конец списка (у последнего элемента ссылка на следующий должна быть равна NULL). Стандартная функция strcmp вернёт значение больше нуля, если 1-я строка-аргумент "больше" 2-й, то есть, следует за ней по алфавиту и их нужно переставить... остальное вроде расписано комментами. Какой-либо физической перестановки (перемещения) элементов в памяти нет, только меняются местами указатели, в том и отличие сортировки массива структур от просто массива однотипных элементов