2012-02-18 4 views
2

У меня есть структура C, которая содержит контактную информацию для человека, такую ​​как имя, номер телефона и т. Д. Структуры «контакта» содержатся в связанном списке. Мне нужно вставить узлы таким образом, чтобы связанный список сортировался в алфавитном порядке (по возрастанию).Сортировка имен по алфавиту в C

Есть ли встроенная функция сортировки в C, которую я могу назвать? Или мне нужно написать собственную функцию сортировки? Если есть встроенная функция, могу ли я получить пример того, как я буду называть ее структурой в связанном списке?

+0

Если у вас есть компилятор C++, вы можете взглянуть на реализацию 'std :: list :: sort()', который, вероятно, будет очень близок к тому, что вам придется писать. Он будет полностью содержаться в файле заголовка. –

+1

Ваша домашняя работа основана на построении связанного списка в отсортированном порядке или сортировке в целом после создания списка? Если вы просто создаете связанный список, вам нужно найти «сортированный связанный список вставки», где вы обрабатываете сортировку как функцию вставки списка. – jmq

+0

@jmquigley Глядя на код больше, мне кажется, что я должен вставить новый элемент в связанный список в зависимости от того, где имя будет падать в алфавитном порядке. Поэтому я буду строить связанный список таким образом. Есть ли пример, который вы знаете, где я могу посмотреть на то, что вставляет новый элемент в алфавитном порядке с помощью узла? – aclark

ответ

3

Нет стандартного метода сортировки для «списка». Ближайшим является qsort (который действительно может сортировать пользовательские объекты), но он работает только на непрерывных диапазонах (массивы и т. П.).

Возможно, вам придется реализовать свою собственную процедуру сортировки или использовать и массив вместо списка.

+0

Хорошо, спасибо, вот что я сделаю. – aclark

0

Ниже приведен пример кода, который выполняет сортированный связанный список вставки. Это не вырезать и вставить для вас, но покажет вам, чего ожидать в этом типе вставки:

http://www.c.happycodings.com/Sorting_Searching/code8.html

Фокус на «вставить()» вызов. Я не компилировал этот код, чтобы проверить его, но я прочитал его, и он выглядит корректно для меня. Он показывает, как искать настройки списка и указателя. Вы должны решить свою проблему из этого кода.

Смежные вопросы