Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 14
1

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

20.01.2020, 00:05. Просмотров 1762. Ответов 7

Всем здравствуйте!
Имеется линейный список. Помогите, пожалуйста, написать сортировку студентов этого списка по фамилии. То есть, в алфавитном порядке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct Student
{
    char lastName[30];             
    char name[30];                        
    char secondName[30];              
    int gruppNum;                              
    int note[5];                            
    void Input(Student &student);          
    Student *Next;                          
};
 
class List
{
    Student *Head;                     
    
    int size;
public:
    List() :Head(NULL) {};          
    ~List();                             
    void DeleteNode(int n);
    void Add(Student &student);             
    void Show(Student *head);                           
    void Pop(int m);
    void Search();
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2020, 00:05
Ответы с готовыми решениями:

Спроектировать шаблон класса spisok для реализации односвязного линейного списка. Не работает сортировка
Здравствуйте! Очень нужна помощь в реализации программы. Задание: Спроектировать шаблон класса...

Ввод вложенного односвязного линейного списка
Помогите, пожалуйста разобраться с вводом вложенного односвязного линейного списка. Вот хотя бы на...

Проход по элементам односвязного линейного списка
Допустим у меня существует класс линейного односвязного списка. Надо пройти по его элементам и...

Гайд по сортировке односвязного линейного списка
Посоветуйте пожалуйста толковый гайд по сортировке. Уже столько всего перерыл, прочитал, но понять...

7
241 / 160 / 89
Регистрация: 07.11.2019
Сообщений: 557
20.01.2020, 04:25 2
Цитата Сообщение от Mrum Посмотреть сообщение
Student *Head;
Цитата Сообщение от Mrum Посмотреть сообщение
void Show(Student *head);
у этого Змея-Горыныча разные головы?
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 14
20.01.2020, 08:34  [ТС] 3
На самом деле, нет...
Я экспериментировал и не убрал. Там просто void Show();
0
5445 / 3676 / 1528
Регистрация: 07.05.2019
Сообщений: 11,392
Записей в блоге: 1
20.01.2020, 10:17 4
Цитата Сообщение от Mrum Посмотреть сообщение
Имеется линейный список. Помогите, пожалуйста, написать сортировку студентов этого списка по фамилии. То есть, в алфавитном порядке.
Односвязный список на месте не отсортируешь. В него нужно добавлять в определённую позицию - Очередь с приоритетами, добавление и удаление
Т.е. тебе нужно добавить метод void AddSorted(Student &student);, и скопировать данные в новый список с использованием этого метода
0
3298 / 2679 / 724
Регистрация: 25.03.2012
Сообщений: 9,677
Записей в блоге: 1
20.01.2020, 11:42 5
oleg-m1973, с чего бы это? Отсортировать можно всё что угодно. Зачем копипастить чей-то чужой код, если всегда можно легко написать свой собственный? Для такой темы как "списки" времени уйдёт куда больше на разборки в чужом коде, чем на халявное написание своего!
0
0 / 0 / 0
Регистрация: 26.02.2017
Сообщений: 14
20.01.2020, 20:16  [ТС] 6
Подниму, может, кто откликнется.
Я попробовал по аналогии из oleg-m1973, но, честно, не разобрался в коде.
0
241 / 160 / 89
Регистрация: 07.11.2019
Сообщений: 557
20.01.2020, 20:35 7
добавьте функцию нахождения указателя на N-й элемент, пригодится
0
2685 / 1856 / 552
Регистрация: 05.06.2014
Сообщений: 5,361
20.01.2020, 20:41 8
Все знают решение, но никто не хочет писать потому что 1) "напишите все за меня" топик. 2) Списки в приличном обществе не сортируют, так как выходит квадратичная сложность.

Подсказываю - "Сортировка пузырьком". Если два идущих друг за другом элемента идут в не отсортированном порядке, меняете их местами. Повторяете пока есть что менять местами. Если классы писать умеете, то и закодить такой алгоритм должны суметь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2020, 20:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удалить из односвязного линейного списка определенный узел
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая...

Найти наименьший элемент односвязного линейного списка
Найти наименьший элемент односвязного линейного списка. Сценарий: обходя список найти минимальное...

Задать двумерный массив с помощью линейного односвязного списка
Помогите решить задачу: "Задать двумерный массив с помощью линейного односвязного списка". Может...

Реализовать стек вещественных чисел на основе односвязного линейного списка
Реализовать стек вещественных чисел на основе односвязного линейного списка написать программу


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.