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

Сортировка односвязного циклического списка (Прямым включением) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Последовательность в целочисленной матрице http://www.cyberforum.ru/cpp-beginners/thread1080205.html
Даны две целочисленные квадратные матрицы порядка n. Найти последовательность из нулей и единиц Bi....Bn такую, что Bi = 1, когда все элементы i-ой строки первой матрице больше элементов i-ой строки второй матрицы.
C++ При повторении элементов в новом массиве, оставлять только первый из них Условие: Даны натуральные числа n и m и целочисленный массив размера mn. Найти сумму наибольших значений элементов его строк. Сформировать новый массив из суммировавшихся значений. При повторении элементов в новом массиве, оставлять только первый из них. Воспользоваться динамическими массивами и продемонстрировать работу с указателями. Решение: #include <iostream> using namespace std; int... http://www.cyberforum.ru/cpp-beginners/thread1080191.html
Программа должна выводить координаты отрезка в границы которого входит максимальное число отрезков подаваемых на вход C++
#include<iostream> #include <fstream> using namespace std;
Напишите функцию, которая выводит элементы в следующем порядке: C++
Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: AN, A0, AN-1, A1, AN-2, A2, … .
C++ Написать программу, выполняющую следующие действия со структурой: http://www.cyberforum.ru/cpp-beginners/thread1080151.html
Ребят помогите пожалуйста, не бросайте в беде)) Мне нужно описать структуру с именем SPORT, содержащую следующие поля: -Имя спортсмена; -страна, проводившая чемпионат; -дата соревнования; -вес в граммах, потерянный спортсменом после каждого этапа соревнования (массив из 5 элементов). Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных о спортсмене - пятиборце;...
C++ . В каждой матрице найти минимальный элемент и записать найденные значения в вектор С 1. Даны три матрицы М,В и А. В каждой матрице найти минимальный элемент и записать найденные значения в вектор С. 2. Написать функцию, которая складывает первый и последний столицы квадратного массива и записывает результат на место первой строки. Буду очень благодарна! подробнее

Показать сообщение отдельно
WilFred
 Аватар для WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
24.01.2014, 13:51  [ТС]     Сортировка односвязного циклического списка (Прямым включением)
Список должен быть реализован свой.
Вот класс
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
33
34
35
36
37
38
class CXD
{
public:
    String numb;     // номер
    String datzak;   // дата заключения
    String datzav;   // дата завершения
    String temadog;  // тема
    String namorg;   // наименование организации
    String priznak;  // признак
    String stoimost; // стоимость в тыс руб.
    CXD* next;      // следующий элемент списка
 
    // Конструктор
    CXD(String n, String dzk, String dzv, String td,
        String no, String pr, String st, CXD* t)
    {
        numb = n;
        datzak = dzk;
        datzav = dzv;
        temadog = td;
        namorg = no;
        priznak = pr;
        stoimost = st;
        next = t;
    }
    // Конструктор
    CXD()
    {
        numb = 0;
        datzak = 0;
        datzav = 0;
        temadog = 0;
        namorg = 0;
        priznak = 0;
        stoimost = 0;
        next = NULL;
    }
};
Сортирую так(через чур мудрёно, пытаюсь как-то проще сделать):
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
XD b = x;
    for(int i=0; i<n; i++)
    {
        if(StrToInt(b->numb) >= StrToInt(b->next->numb))
        {
            int j=0;
            XD a = b->next;
            b->next = b->next->next;
            b=x;
            for(; StrToInt(a->numb) >= StrToInt(b->numb) && StrToInt(a->numb) >= StrToInt(b->next->numb); j++)
                b=b->next;
            if(j==0)
            {   for(int q=0; q<n-j-1; q++)
                    b=b->next;
                a->next = b->next;
                b->next = a;
                for(int q=0; q<=i; q++)
                    b=b->next;
                for(int q=0; q<n; q++)
                    x=x->next;
            }
            else
            {
                a->next = b->next;
                b->next = a;
                for(int q=0; q < j-2; q++)
                    b=b->next;
            }
        }
        b = b->next;
    }
n - кол-во элементов в списке, x - сам список, объявлен глобально...
P.S. не всегда сортирует правильно...
 
Текущее время: 19:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru