1 / 0 / 0
Регистрация: 25.11.2018
Сообщений: 36
1

Односвязный список (сортировка)

29.04.2019, 21:49. Показов 2099. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема в том что при выборе сортировки больше не могу выбрать нечего, но ошибку не выдает, при попытке пройтись точками останова выдает такую штуку
Односвязный список (сортировка)



C++
1
2
3
4
5
6
7
8
9
10
struct firma {
    string name_f;
    unsigned int kol_p;
    unsigned int year;
    unsigned int chast;
};
struct foorm {
    firma info;
    foorm *next;
};
сам код сортировки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void sort_year() {
    foorm *temp, *temp_s;
    firma t;
    temp = head;
    while (temp != NULL) {
        temp_s = temp->next;
        while (temp_s != NULL) {
            if (temp->info.year > temp_s->info.year) {
                t = temp->info;
                temp->info = temp_s->info;
                temp_s->info = t;
            }
        }temp_s = temp_s->next;
        temp = temp->next;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2019, 21:49
Ответы с готовыми решениями:

Кольцевой односвязный список, сортировка
Помогите, пожалуйста, с сортировкой списка. #include <iostream> #include <stdlib.h> using...

Односвязный список. Сортировка по алфавиту
У меня есть односвязный список.Раньше был двухсвязный но дали задание сделать на односвязный...

Сортировка методом выбора, односвязный список
Добрый вечер. Такая проблема, срочно нужно сделать два задания, я сколько не пробовал - у меня ещё...

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных...

4
4066 / 3319 / 925
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
29.04.2019, 22:12 2
программа билдится без ошибок?
эта функция в ней задействована?
1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
29.04.2019, 22:28 3
Лучший ответ Сообщение было отмечено zhenyajecks как решение

Решение

zhenyajecks, у Вас внутренний цикл выполняется до тех пор, пока переменная temp_s не станет равной NULL. Вот только в теле цикла значение этой переменной нигде не изменяется, так что, если программа зашла в цикл, она из него не выйдет. Подозреваю, что фигурную скобку с начала 13 строки нужно перенести в ее конец...
1
4066 / 3319 / 925
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
29.04.2019, 23:29 4
Лучший ответ Сообщение было отмечено zhenyajecks как решение

Решение

Цитата Сообщение от zhenyajecks Посмотреть сообщение
t = temp->info;
temp->info = temp_s->info;
temp_s->info = t;
обмен элементов списка по копиям значений это явно не то, что подразумевают алгоритмы на списках.
И да, то что написано это ни в коем месте не сортировка пузырьком!

1) temp_s = temp_s->next; вообще вне внутреннего цикла.
2) обмен в цикле первого и текущего элемента нерационален.

Либо мы меняем два соседних элемента и называем это сортировкой пузырьком, либо сначала ищем минимальный несортированный элемент и только после внутреннего цикла меняем его с первым - тогда это сортировка выбором.
скрещивать эти два метода не надо.
1
1 / 0 / 0
Регистрация: 25.11.2018
Сообщений: 36
30.04.2019, 10:44  [ТС] 5
Спасибо, сделал чисто пузырьком закинул в цикл temp_s=temp_s->next; всё работает
0
30.04.2019, 10:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2019, 10:44
Помогаю со студенческими работами здесь

Создать класс «Квартира», в котором список комнат реализовать как односвязный список
Добрый день,написал фот такой клас по заданию:Создать класс «Квартира», в котором список комнат...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В...

Односвязный список: заносить в новый список элементы исходного, которые больше заданного значения
Можете пожалуйста помочь в решении проблемы не. Не могу создать функцию которая будет с созданного...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на двусвязный список ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru