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

Как сделать сортировку по узлам в односвязном списке? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Процентное отношение цифр в заданой строке http://www.cyberforum.ru/cpp-beginners/thread1858301.html
Нужно сделать чтобы программа выводила на экран процентное отношение цифр в строке . Оставляю свой код программы ниже , не могу понять почему не работает . Если кто знает , скажите где я ошибся. Код программы : #include <iostream> #include <stdio.h> #include <string> #include <string.h> #include <clocale> using namespace std; void main()
C++ Можно ли представить заданное число суммой трех других чисел? Можно ли представить заданное число сумой квадратов трех других чисел? http://www.cyberforum.ru/cpp-beginners/thread1858297.html
C++ Как умножить одно число на другое без умножения
Умножьте одно число на другое, пользуясь только добавлением, удвоением и делением пополам.
C++ Сделать массив упорядоченным, переместив первый элемент на новую позицию АХ
Доброго времени суток всем,прошу решить мне вот эту задачу используя одномерный динамический массив!!!и при этом розмер начального массива должен быть N>=10 вводить с клавиатуры,а элементы розместить в памяти динамично,данные в массив также вводить с клавиатуры.(Если кто-то решит все таки помочь мне с этой задачей то прошу добавить еще комментарии) Задача:Дан массив А размера N, все элементы...
C++ Строки: совпадают ли первые и последние буквы двух слов? http://www.cyberforum.ru/cpp-beginners/thread1858282.html
Совпадают ли первые и последние буквы двух слов #include <string> #include <iostream> using namespace std; int main() {string s,s1;
C++ Посчитать сколько раз слово встречается в тексте "В текстовом файле input.txt в первой строке записано одно слово, в остальных строках - текст, слова в котором разделены одним или несколькими пробелами. Перед первым, а также после последнего слова строки пробелы могут отсутствовать. Подсчитать, сколько раз это слово встречается в тексте" Вот само задание. Если с файлами я еще разберусь, то с тем, как найти количество повторов, возникает... подробнее

Показать сообщение отдельно
DenKG
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 355

Как сделать сортировку по узлам в односвязном списке? - C++

23.11.2016, 20:44. Просмотров 155. Ответов 7
Метки (Все метки)

Есть задача: отсортировать узлы по возрастанию в односвязном списке. Есть код, но при его выполнении вылетает ошибка:
Вызвано исключение по адресу 0x00BC29C1 в ConsoleApplication6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000000.

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

Сам код:
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
if (head != NULL) {
        Node *cur = new Node;
        Node *g;
        Node *pred;
        Node *b;
 
        for (int i = 0; i < valcount; i++) {
            pred = head;
            cur = head->next;
            if (pred->item < cur->item) {
                g = pred;
                b = cur->next;
                pred = pred->next;
                g->next = b;
                pred->next = g;
                head = pred;
            }
            pred = head;
            cur = head->next;
            for (int j = 0; j < valcount - 2; j++) {
                if (cur->next->item > cur->item) {
                    g = cur;
                    b = cur->next->next;
                    pred->next = cur->next;
                    cur = pred->next;
                    g->next = b;
                    cur->next = g;
                }
                pred = pred->next;
                cur = cur->next;
            }
        }
        cur->next = NULL;
    }
Думаю, еще понадобится код заполнения списка:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i = 0; i < size; i++)
        {
            Node *pv = new Node;
                if (head == NULL) {
                pv->next = NULL;
                head = pv;
                pred = pv; valcount++;
                }
                else {
                pv->next = head->next;
                pv->next = head;
                head = pv;
                valcount++;
                }
            cin >> pv->item;
            valcount++;
        }
Добавлено через 1 час 0 минут
Неужели никто не знает, как сделать?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru