Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16

Организовать ввод в однонаправленный список

07.04.2016, 06:27. Показов 2483. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, пожалуйста можете помочь с задачей:
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо найти номер позиции минимального значания из списка
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2016, 06:27
Ответы с готовыми решениями:

Организовать ввод в однонаправленный список
Здравствуйте, можете нижеприведенный код переделать так, чтобы программа находила минимальную позицию значения, а не максимальную. Вот код:...

Организовать ввод в однонаправленный список (работа с указателями)
1. Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо организовать...

Организовать ввод в однонаправленный список; подсчитать сумму чисел списка
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо подсчитать сумму чисел...

11
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
07.04.2016, 10:23
Лучший ответ Сообщение было отмечено Angelochka16 как решение

Решение

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
#include <iostream>
 
class F_list {
    int i;
    F_list *next;
    static F_list *head;
public:
    F_list() : i(0), next(nullptr) {}
    F_list(int x) : i(x), next(nullptr) {}
    ~F_list() { delete next; }
    F_list& operator=(F_list x) { i = x.i; return *this; }
//------------------------------------------------------------
    F_list* find_min() {        
        int j = i;
        F_list *min_ptr = this;
        for (auto x = next; x; x = x->next)
            if (x->i < j) { j = x->i; min_ptr = x; }
        return min_ptr;
    }
//------------------------------------------------------------
    bool add(int j) {
        F_list *p = new F_list(j);
        if (p) {
            for (auto x = head; x; x = x->next)
                if (!x->next) {
                    x->next = p; break;
                }
            return true;
        }
        return false;
    }
//------------------------------------------------------------
    void del(int j) {
        if (j == head->i) delete head;
        else
            for (auto x = head; x->next; x = x->next)
                if (x->next->i == j) {
                    auto ptr = x->next;
                    x->next = ptr->next;
                    ptr->next = nullptr;
                    delete ptr;
                    return;
                }
    }
//-----------------------------------------------------------
    F_list* return_head() { return head; }
    int curr() { return i; }
    void oll_show() {
        for (auto ptr = return_head(); ptr; ptr = ptr->next)
            std::cout << ptr->i << std::endl;
    }
};
 
F_list *F_list::head = new F_list();
 
int main() {
    
    auto &list_head = *F_list().return_head();// создали головной элемент списка
    list_head = 123; // присвоили ему произвольное значение
    list_head.add(4); // создали в списке еще три элемента со значениями 4, 5, 2
    list_head.add(5);
    list_head.add(2);
    auto x = list_head.find_min(); // нашли минимальное
    std::cout << "Find min nymber " << x->curr() << std::endl; // отобразили минимальное
    list_head.del(4); // удалили элемент в списке со значением 3
    list_head.oll_show(); // показали весь список
    delete &list_head; // удалили весь список перед выходом
    return 0;
}
1
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
07.04.2016, 16:19  [ТС]
И здесь из за nulla не компилирует
0
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
07.04.2016, 16:30
Где именно?)
1
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
07.04.2016, 17:02  [ТС]

ввооооттт(((
0
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
07.04.2016, 17:07
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
#include <iostream>
 
class F_list {
    int i;
    F_list *next;
    static F_list *head;
public:
    F_list() : i(0), next(NULL) {}
    F_list(int x) : i(x), next(NULL) {}
    ~F_list() { delete next; }
    F_list& operator=(F_list x) { i = x.i; return *this; }
    //------------------------------------------------------------
    F_list* find_min() {
        int j = i;
        F_list *min_ptr = this;
        for (F_list *x = next; x; x = x->next)
            if (x->i < j) { j = x->i; min_ptr = x; }
        return min_ptr;
    }
    //------------------------------------------------------------
    bool add(int j) {
        F_list *p = new F_list(j);
        if (p) {
            for (F_list *x = head; x; x = x->next)
                if (!x->next) {
                    x->next = p; break;
                }
            return true;
        }
        return false;
    }
    //------------------------------------------------------------
    void del(int j) {
        if (j == head->i) delete head;
        else
            for (F_list *x = head; x->next; x = x->next)
                if (x->next->i == j) {
                    F_list *ptr = x->next;
                    x->next = ptr->next;
                    ptr->next = NULL;
                    delete ptr;
                    return;
                }
    }
    //-----------------------------------------------------------
    F_list* return_head() { return head; }
    int curr() { return i; }
    void oll_show() {
        for (F_list *ptr = return_head(); ptr; ptr = ptr->next)
            std::cout << ptr->i << std::endl;
    }
};
 
F_list *F_list::head = new F_list();
 
int main() {
 
    F_list &list_head = *F_list().return_head();// создали головной элемент списка
    list_head = 123; // присвоили ему произвольное значение
    list_head.add(4); // создали в списке еще три элемента со значениями 4, 5, 2
    list_head.add(5);
    list_head.add(2);
    F_list *x = list_head.find_min(); // нашли минимальное
    std::cout << "Find min nymber " << x->curr() << std::endl; // отобразили минимальное
    list_head.del(4); // удалили элемент в списке со значением 3
    list_head.oll_show(); // показали весь список
    delete &list_head; // удалили весь список перед выходом
    return 0;
}
Вот последняя редакция
0
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
07.04.2016, 17:11  [ТС]
Вложение 674935
теперь этоо
0
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
07.04.2016, 17:13  [ТС]

это
0
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
07.04.2016, 17:15
Лучший ответ Сообщение было отмечено Angelochka16 как решение

Решение

Последний код не работает??? Еще раз посмотрите.

Добавлено через 44 секунды
Я убрал все auto и nullptr.
1
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
07.04.2016, 18:24  [ТС]
Получилоссььь))))))) Спасибоо огромноеее

Добавлено через 5 минут
А нет стоп, мне же надо позицию найти
0
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
07.04.2016, 19:11
Лучший ответ Сообщение было отмечено Angelochka16 как решение

Решение

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
#include <iostream>
 
class F_list {
    int i;
    F_list *next;
    static F_list *head;
public:
    F_list() : i(0), next(NULL) {}
    F_list(int x) : i(x), next(NULL) {}
    ~F_list() { delete next; }
    F_list& operator=(F_list x) { i = x.i; return *this; }
    //------------------------------------------------------------
    int find_min() {
        int j = i, pos = 1, k = 1;
        for (F_list *x = next; x; x = x->next, ++k)
            if (x->i < j) { j = x->i; pos = k; }
        return pos;
    }
    //------------------------------------------------------------
    F_list& at(int ind) {
        if(ind >= 0)
            for (F_list *ptr = head;ptr; ptr = ptr->next)
                if (!ind--)
                    return *ptr;
        std::cerr << "Erorr! Outside the lists range...\n";
        delete head;
        exit(0);
    }
    //------------------------------------------------------------
    bool add(int j) {
        F_list *p = new F_list(j);
        if (p) {
            for (F_list *x = head; x; x = x->next)
                if (!x->next) {
                    x->next = p; break;
                }
            return true;
        }
        return false;
    }
    //------------------------------------------------------------
    void del(int j) {
        if (j == head->i) delete head;
        else
            for (F_list *x = head; x->next; x = x->next)
                if (x->next->i == j) {
                    F_list *ptr = x->next;
                    x->next = ptr->next;
                    ptr->next = NULL;
                    delete ptr;
                    return;
                }
    }
    //-----------------------------------------------------------
    F_list* return_head() { return head; }
    int curr() { return i; }
    void oll_show() {
        for (F_list *ptr = return_head(); ptr; ptr = ptr->next)
            std::cout << ptr->i << std::endl;
    }
};
 
F_list *F_list::head = new F_list();
 
int main() {
 
    F_list &list_head = *F_list().return_head();// создали головной элемент списка
    list_head = 123; // присвоили ему произвольное значение
    list_head.add(4); // создали в списке еще три элемента со значениями 4, 5, 2
    list_head.add(1);
    list_head.add(2);
    list_head.add(7);
    //list_head.at(9); выход из диапазона списка завершает программу
    int x = list_head.find_min(); // нашли индекс(позицию) минимального элемента
    std::cout << "Position min element " << x << std::endl; // отобразили позицию
    std::cout << list_head.at(x).curr() << std::endl; // отобразили значение этого элем.
   // list_head.del(4); // удалили элемент в списке со значением 3
    list_head.oll_show(); // показали весь список
    delete &list_head; // удалили весь список перед выходом
    return 0;
}
1
 Аватар для Angelochka16
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 16
10.04.2016, 20:25  [ТС]
Спасибооо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2016, 20:25
Помогаю со студенческими работами здесь

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

Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Не
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо добавить узел после...

Организовать из слов строки однонаправленный список, упорядочивая слова по алфавиту
Дана символьная строка, состоящая из слов, разделенных пробелом. Составить про-грамму, которая вводит строку, организует из слов строки...

Массив организовать в однонаправленный список
Помогите два массива преобразовать в однонаправленный список

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список]
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с номером k А нужно ввести...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера 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