Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 2
1

Линейный односвязный список

18.01.2018, 16:45. Показов 3093. Ответов 1

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста!
1) создать линейный односв список и вывести его
2)поменять местами макс и мин элементы
3)переставить в обратном порядке все элементы
4)удвоить каждое значение
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2018, 16:45
Ответы с готовыми решениями:

Односвязный линейный список
Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста...

Линейный односвязный список
Ведомость абитуриентов, которые сдали вступительные экзамены в колледж, содержит Ф.И.О., адрес,...

Линейный односвязный список
Можете более понятным языком объяснить,что требуется в этом задании? Дана непустая...

Линейный односвязный список
void Read() { Node *cur = head; ifstream if_read; if_read.open("BDname.txt"); if...

1
2856 / 2003 / 988
Регистрация: 21.12.2010
Сообщений: 3,708
Записей в блоге: 10
19.01.2018, 11:25 2
Лучший ответ Сообщение было отмечено marina314 как решение

Решение

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <stack>
#include <iostream>
#include <utility>
 
class Node
{
public:
    Node(int num) : _num(num), _next(nullptr){}
    friend class List;
private:
    int _num;
    Node* _next;
};
 
class List
{
public:
    List() : _root(nullptr){}
    void add(int rhs)
    {
        if (!_root)
        {
            _root = new Node(rhs);
        }
        else
        {
            Node* tmp = _root;
            while (tmp->_next)
            {
                tmp = tmp->_next;
            }
            tmp->_next = new Node(rhs);
        }
    }
    void print() const
    {
        Node* tmp = _root;
        while (tmp)
        {
            std::cout << tmp->_num << "  ";
            tmp = tmp->_next;
        }
        std::cout << std::endl;
    }
    void minmax() // поменять местами макс и мин элементы 
    {
        if (_root)
        {
            Node* min = _root, *max = _root, *tmp = _root;
            while (tmp)
            {
                if (tmp->_num < min->_num)
                {
                    min = tmp;
                }
                else if (tmp->_num > max->_num)
                {
                    max = tmp;
                }
                tmp = tmp->_next;
            }
            std::swap(min->_num, max->_num);
        }
    }
    void reverse() // переставить в обратном порядке все элементы
    {
        std::stack<int> stk;
        Node* tmp = _root;
        while (tmp)
        {
            stk.push(tmp->_num);
            tmp = tmp->_next;
        }
        tmp = _root;
        while (tmp)
        {
            tmp->_num = stk.top();
            stk.pop();
            tmp = tmp->_next;
        }
    }
    void doubling() // удвоить каждое значение 
    {
        Node* tmp = _root;
        while (tmp)
        {
            tmp->_num *= 2;
            tmp = tmp->_next;
        }
    }
    ~List()
    {
        Node* tmp = _root;
        while (tmp)
        {
            _root = tmp->_next;
            delete tmp;
            tmp = _root;
        }
    }
private:
    Node* _root;
};
 
int main()
{
    List lst;
    lst.add(7);
    lst.doubling(); 
    lst.add(3);
    lst.doubling();
    lst.add(8);
    lst.add(8);
    lst.minmax(); 
    lst.minmax();
    lst.reverse(); 
    lst.reverse();
    lst.print();
    return 0;
}
0
19.01.2018, 11:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2018, 11:25
Помогаю со студенческими работами здесь

Линейный односвязный список
List *begin = NULL; begin = new List; List *begin1 = NULL; begin1 = new List; List *begin2 =...

Создать односвязный линейный список
Доброго времени суток! Помогите пожалуйста с кодом программы: Нужно создать односвязный линейный...

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

Линейный односвязный список и Бинарное дерево
Необходимо написать программу, но вот что-то затрудняюсь 1.Два линейных односвязных списка заданы...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru