Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102

Сортировка линейного списка перестановками

18.04.2012, 00:41. Показов 1992. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я написал алгоритм который будет просто менять поля value а не перенаправлять указатели, но программа не работает правильно не могли бы вы мне показать где ошибки
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <fstream>
using namespace std;
 
 
struct tElem
{
 int value;
 tElem *next;
 
};
 
void create_list(tElem* &h1,ifstream &f)
{
tElem* temp;
 
h1=new tElem;
 
temp=h1;
 
f>>temp->value;
 
while(f.peek()!=EOF)
    {
        temp->next=new tElem;
        
        temp=temp->next;
        
        temp->next=NULL;
        
        f>>temp->value;
    }
 
}
 
int main()
{
 tElem *c;
 
 ifstream file("bubble.txt");
 
 create_list(c,file);
 tElem *t=c;
 
while (file.peek()!=EOF)
{
     c=t;
 
    while (c->next!=NULL)
    {
     if (c->value>c->next->value)
        {
            int temp=c->value;
 
            c->value=c->next->value;
 
            c->next->value=temp;
        }
    c=c->next;
    }
 }
t=c;
while (t)
{
    cout<<t->value<<" ";
    t=t->next;
}
file.close();
 
 return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2012, 00:41
Ответы с готовыми решениями:

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

Сортировка динамического линейного списка
Подскажите пожалуйста как вывести список книг изданных после указанного года.Я уже все пересмотрела везде только добавить -удалить.Это я...

Сортировка односвязного линейного списка по алфавиту
Всем здравствуйте! Имеется линейный список. Помогите, пожалуйста, написать сортировку студентов этого списка по фамилии. То есть, в...

3
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
28.04.2012, 00:24  [ТС]
простой алгоритм с обменом полей value я сделал, а вот с перенаправлением указателей рабочий пока не получается только попытка
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <fstream>
using namespace std;
 
 
struct tElem 
{
 int value;
 tElem *next;
 
};
 
void create_list(tElem* &h1,ifstream &f)  
{
tElem* temp; 
 
h1=new tElem; 
 
temp=h1; 
 
f>>temp->value; 
 
while(f.peek()!=EOF) 
    {
        temp->next=new tElem;
 
        temp=temp->next;
 
        temp->next=NULL;
 
        f>>temp->value;
    }
 
}
 
 
 
int main()
{
 tElem *c;
 
 ifstream file("bubble.txt");
 
 create_list(c,file);
 
 tElem *start;
 
 start=new tElem;
 
 start=c;
 
 tElem *t=c;
 
bool run=true;
 
while(run)
{    run=false;
 
     c=start; 
 
    while (c->next!=NULL) 
    {
     if (c->value>c->next->value) 
        {
            if (c==start)
            {
                start=c->next;
                c->next=start->next;
                start->next=c;
            }
        else
                {
                    t->next=c->next;
                    c->next=c->next->next;
                    t->next->next=c;
                }
        run=true;
        }
        t=c;
    c=c->next;
    }
 }
// вывод на экран
while (c)
{
    cout<<c->value<<" ";
    c=c->next;
}
file.close();
getchar();
 return 0;
}
в чем здесь может быть ошибка?
0
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
28.04.2012, 12:03
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <conio.h>
 
#include <iostream>
#include <fstream>
 
struct tElem
{
    int value;
    tElem* next;
};
 
tElem* h1 = NULL;
tElem* temp = NULL;
 
using namespace std;
 
bool issorted(tElem*& h1);
void create_list(tElem*& h1, std::ifstream& ifs);
 
int main(void)
{
    char* filename = "d:\\input.txt";
    ifstream ifs(filename, ifstream::in);
 
    create_list(h1, ifs);
 
    do {
        for (tElem* list = h1; list->next != NULL; list = list->next)
              if (list->value > list->next->value)
              { int temp = list->next->value; 
                list->next->value = list->value;
                list->value = temp; }
    }while(!issorted(h1));
 
    for (tElem* list = h1; list != NULL; list = list->next)
        cout << list->value << " ";
    cout << endl;
 
    return 0;
}
 
void create_list(tElem*& h1, std::ifstream& ifs)
{
    int value = 0; h1 = new tElem; 
    ifs>>h1->value; temp = h1;
    while (ifs.peek() >= 0 && ifs.good())
    {
        tElem* item = new tElem;
        ifs>>item->value; item->next = NULL;
        temp->next = item; temp = item;
    }
}
 
bool issorted(tElem*& h1)
{
    for (tElem* list = h1; list->next != NULL; list = list->next)
        if (list->value > list->next->value)
            return false;
    return true;
}
input.txt:
2 5 7 4 5 6 9 1 0
1
30 / 1 / 1
Регистрация: 28.10.2010
Сообщений: 102
01.05.2012, 00:16  [ТС]
но все-таки этот алгоритм меняет только поля value
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2012, 00:16
Помогаю со студенческими работами здесь

Сортировка линейного списка по полю year
Господа подскажите как осуществить сортировку списка по полю year? При этом неважно по убыванию или возрастанию, метод сортировки тоже...

Сортировка линейного списка слиянием сверху вниз
«Функция merge должна сливать список, на который указывает a, со списком, на который указывает b, с помощью вспомогательного указателя с....

Сортировка двунаправленного линейного списка по алгоритму Хоара
ПОМОГИТЕ СРОЧНО!!!! нужно отсортировать двунаправленный линейный список по алгоритму Хоара менять местами можно только указатели!! код...

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

Сортировка перестановками
Хотел написать функцию для сортировки. Компилятор ошибок не выдает.На выводе выходит это: 3 2 5 4 1 8 6 9 7 11 13 10 12 14 -858993460 ....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru