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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Валентин^_^
10 / 10 / 2
Регистрация: 15.10.2009
Сообщений: 119
#1

Сортировка списка - C++

15.12.2011, 22:18. Просмотров 719. Ответов 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
void sort_train(Train *head)
{
    Train *buf;
 
    bool change;
    do
    {
        Train *p = head;
        change = false;
        for(p = head; p != NULL && p->next != NULL; p = p->next)
        {
            if(p->TrainNumber > p->next->TrainNumber)
            {
                buf = p->next;
                p->next = buf->next;
                buf->next = head;
                head = buf;
                change = true;
            }
        }
    }
    while(change);
}
Есть у кого рабочий пример?

Добавлено через 23 часа 16 минут
Ап. Отпишитесь кто сортировал списки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2011, 22:18     Сортировка списка
Посмотрите здесь:

Сортировка списка - C++
Получается, что пользователь вносит книги в библиотеку, записывая имя писателя, название, год издания и тд... После чего он может...

Сортировка списка - C++
Приветствую всех! Есть небольшая проблема: не могу понять, как создать сортировку в алфавитном порядке. Вот код: void SortList() { ...

Сортировка списка - C++
Народ нужна помощь :) Элементы списка представлены следующим образом: class Node { public: char *name; Node *next; ...

Сортировка списка - C++
Люди помогите плиз я уже не могу!! надо сортировать список!!! Останьные недоработки тоже можете указать. Вот код Жду ответов) ...

Сортировка списка - C++
Привет, всем.. Ребята помогите у подруги зачет по программированию ей надо решить задачку.. Информационное поле элемента...

Сортировка списка - C++
Всем привет задание такое Разработать программу работы со связным списком сеансов в кинотеатре. Для каждого сеанса должна храниться...

Сортировка списка - C++
Дан список сел и расстояния до них от города. Нужно вывести села в порядке удаленности от города. Городов до 10^8. Расстояния - целые...

Сортировка списка - C++
Здравствуйте, не совсем понимаю как должна быть реализована сортировка вставками в деке. Что имеется на данный момент: class List...

Сортировка списка - C++
помогите сделать сортировку по возрасту, а то ничего не выходит #include <iostream> #include <conio.h> using namespace std; struct...

Сортировка списка - C++
Здравствуйте!!! Прошу помочь мне написать алгоритм сортировки односвязного списка. Задание такое: необходимо из элементов трёх списков...

Сортировка списка - C++
Помогите пожалуйста, нужна сортировка методом вставок односвязанного кольцевого списка, не пойму как делать. Со списками ток начал...

Сортировка списка по убыванию - C++
Не работает ListNode<NODETYPE> *currentPtr=firstPtr, *current1Ptr=firstPtr, *XPtr=0; while(currentPtr->nextPtr!=0) { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
16.12.2011, 00:47     Сортировка списка #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Train* lsort(Train *lst) { 
   Train *ea, *eb, *prev, *tmp;                         
   for(tmp = NULL; lst != NULL; ){ 
       ea = lst; 
       lst = lst->next;  
       eb = tmp;
       prev = NULL; 
       while(eb  && ea->TrainNumber > eb->TrainNumber) {
             prev = eb;
             eb = eb->next;
       }
       if(! prev) {
              ea->next = tmp; 
              tmp = ea; 
       } else { 
              ea->next = eb; 
              prev->next = ea; 
       }
  };
   return tmp; 
}
Ну и вызывать так.
C++
1
2
3
Train* lst = NULL;
//.... тут добавляешь в список
lst = lsort(lst);  //вот так вызываешь
Yandex
Объявления
16.12.2011, 00:47     Сортировка списка
Ответ Создать тему
Опции темы

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