Форум программистов, компьютерный форум CyberForum.ru

Сортировка пузырьком связного списка - C++

Восстановить пароль Регистрация
 
mappy89
2 / 2 / 0
Регистрация: 16.10.2011
Сообщений: 178
06.05.2013, 23:25     Сортировка пузырьком связного списка #1
Доброго времени суток, надеюсь на вашу помощь в понимании проблемы при сортировке пузырьком связного списка (привожу только код сортировки, всё остальное рабочее):

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
26
27
28
29
30
31
32
  struct list1
{
    int item;
    list1 *next;
    
    list1(int i, list1 *n=NULL)
        {
            item=i;
            next=n;
        }
};
 
list1 *first;
 
list1 *last;  //первый и посл элементы списка
 
void newlist::arrange()
{
    
        for (list1 *i = first->next; i!=last; i = i->next)
        for (list1 *j = first; j; j = j->next)
 
            if (j->next->item > j->next->next->item) 
 
           {
                list1 *buf = j->next;
                j->next = j->next->next;
                i = j->next;
                buf->next = j->next->next;
                j->next->next = buf;
            }
}
Укажите на ошибку, заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 23:25     Сортировка пузырьком связного списка
Посмотрите здесь:

Быстрая сортировка связного списка C++
Ошибка в Классе связного списка C++
Создание и сортировка связного списка C++
C++ Доступ к элементам связного списка
C++ Сортировка списка пузырьком по убыванию
Сортировка односвязного списка пузырьком C++
C++ Сортировка списка пузырьком
C++ Ошибка в реализации связного списка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 778
Записей в блоге: 10
06.05.2013, 23:43     Сортировка пузырьком связного списка #2
Думаю так :
C++
1
2
3
4
 
     ..
          for (list1 *i = first->next; i!=last; i = i->next)
     ..
указатель last не инициализирован ))


C++
1
2
     for (list1 *j = first; j; j = j->next)
// внутренний цикл
думаю не нужно проходить циклом весь список ))
короче вместо проверки просто жи надо
j -> next
и почему сразу у житых не сравнивать а сдивгаться глубже нало ?
Yandex
Объявления
06.05.2013, 23:43     Сортировка пузырьком связного списка
Ответ Создать тему
Опции темы

Текущее время: 15:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru