Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как преобразовать текст на 64-битные блоки https://www.cyberforum.ru/ cpp-beginners/ thread1826535.html
Хочу разобраться в DES шифре. Помогите понять. Не могу разобраться, как представить текст в виде 64-битных блоках, для дальнейшего преобразования? прошу помочь кодом, а то я пока не очень программист..:(
Найти полустепень вершин по матрице смежности C++
Есть полустепень вершин по списку ребер, а как сделать что бы найти полустепень по матрице смежности? cin >> n >> m; int res; for(int i = 0 ; i < n; i++) { res = 0; res = 0; } for(int i = 0; i < m; i++) { cin >> a >> b;
C++ Построить упорядоченный массив из двух других упорядоченных массивов https://www.cyberforum.ru/ cpp-beginners/ thread1826529.html
построить упорядоченный массив a из элементов массива b и c. Массивы b и c предварительно упорядочены по возрастанию.
C++ Локализация консоли https://www.cyberforum.ru/ cpp-beginners/ thread1826509.html
Всем привет. Дело такое. Есть программа, которая при определенных условиях должна заменять символ в строке на 219 символ ASCII (Квадратик). Так она и делала, пока я не локализовал консоль setlocale(LC_ALL, "Rus"); Теперь вместо квадратика символ меняется на "Ы". Как можно локализовать консоль и заодно вернуть замену символа на квадратик?
C++ Вычислить значение функции, заданной рядом Тейлора
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от x1 до x2 c шагом dx (x1, x2, dx задаются пользователем) с точностью ε (также задается пользователем). Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Для решения задания использовать цикл for, который контролирует...
C++ Напряжная задача с двумерными массивами https://www.cyberforum.ru/ cpp-beginners/ thread1826505.html
Создать программу, которая вводит c клавиатуры два двумерных массива целых чисел, перемножает их друг на друга (если это возможно, т.е. число столбцов первого равно числу строк второго) и выводит на экран результирующий массив и сумму всех его отрицательных элементов. Использование пользовательских и стандартных функций запрещено. Использовать статистическое выделение памяти для массивов.
C++ Вычислить произведение 5 чисел, введенных с клавиатуры Написать программу с использованием оператора цикла do while вычисления произведения 5 чисел, введенных с клавиатуры https://www.cyberforum.ru/ cpp-beginners/ thread1826498.html C++ Вычисление суммы ряда
Вычислить \sum_{i=1}^{\propto }i^2 пока S<50 с помощью цикла while
C++ Использование директив препроцессора Составить программу, использующую директивы препроцессора: с помощью директивы #define вычислить x3 , при x = −2,−1,...,2 с помощью директив #if, #else, #elif осуществить выбор строк программы для вычисления либо 1/(a+b) , либо a-b. https://www.cyberforum.ru/ cpp-beginners/ thread1826492.html C++ Вычислить номер минимального элемента матрицы, а также сумму между первым и вторым отрицательным элементом Необходимо вычислить номер минимального элемента матрицы, а так же сумму между первым и вторым отрицательным элементом. Помогите пожалуйста. С++ https://www.cyberforum.ru/ cpp-beginners/ thread1826490.html
Замена чисел на символы (switch) C++
Написать программу замены введенного числа от 0 до 9 соответствующим символом (1=! 2=@ ...) с оператором switch
C++ Проверка на положительность введенного числа Написать программу проверки на положительность введенного числа с оператором if https://www.cyberforum.ru/ cpp-beginners/ thread1826484.html
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
16.10.2016, 10:17 0

Реализовать указанные функции-члены для пользовательского класса "Кольцевой двусвязный список" - C++ - Ответ 9650524

16.10.2016, 10:17. Показов 1355. Ответов 29
Метки (Все метки)

Ответ

Kristina_S, когда-то писал шаблонный класс подобный тому, что реализован в библиотеке STL. Всё, что действительно необходимо здесь есть, остальное можете добавить сами:
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
//LinkedList.hpp
 
#pragma once
 
template <typename T>
class LinkedList
{
private:
    struct ListItem
    {
        ListItem() : Prev(this), Next(this) {}
 
        ListItem(const T &value, ListItem *prev, ListItem *next) : Value(value), Prev(prev), Next(next) {}
 
        ~ListItem() 
        {
            Prev->Next = Next;
            Next->Prev = Prev;
        } 
 
        T Value;
        ListItem *Prev;
        ListItem *Next;
    };
public:
    class iterator
    {
    public:
        bool operator==(const iterator &other) const
        {
            return _position == other._position;
        }
 
        bool operator!=(const iterator &other) const
        {
            return _position != other._position;
        }
 
        T &operator*() const
        {
            return _position->Value;
        }
 
        T *operator->() const
        {
            return &(_position->Value);
        }
 
        iterator &operator++()
        {
            _position = _position->Next;
            
            return *this;
        }
 
        iterator operator++(int)
        {
            iterator temp = *this;
 
            _position = _position->Next;
 
            return temp;
        }
 
        iterator operator--()
        {
            _position = _position->Prev;
            
            return *this;
        }
 
        iterator operator--(int)
        {
            iterator temp = *this;
 
            _position = _position->Prev;
 
            return temp;
        }
 
        iterator &operator=(const iterator &other)
        {
            if (this != &other)
                _position = other._position;
 
            return *this;
        }
 
        friend class LinkedList;
    private:
        iterator(ListItem *position) : _position(position) {}
 
        ListItem *_position;
    };
public:
    LinkedList()
    {
        _head = new ListItem();
    }
 
    ~LinkedList() 
    {
        if (!empty())
        {
            iterator last = end(), it = begin();
 
            while (it != last)
                remove(it++);
 
            remove(it);
        }
    };
 
    LinkedList(const LinkedList &other)
    {
        _head = new ListItem();
 
        InitializeFrom(other);
    }
 
    LinkedList &operator=(const LinkedList &other)
    {
        if (this != &other)
            InitializeFrom(other);
 
        return *this;
    }
 
    iterator begin() const
    {
        return iterator(_head->Next);
    }
 
    iterator end() const
    {
        return iterator(_head);
    }
 
    void remove(iterator what)
    {
        delete what._position;
    }
 
    bool empty() const
    {
        return end() == begin();
    }
 
    void insert(iterator where, T value)
    {
        ListItem *wherePtr = where._position, *prevPtr = (--where)._position;
        ListItem *insertItemPtr = new ListItem(value, prevPtr, wherePtr);
 
        prevPtr->Next = insertItemPtr;
        wherePtr->Prev = insertItemPtr;
    }
 
    void push_back(T value)
    {
        insert(end(), value);
    }
 
    void push_front(T value)
    {
        insert(begin(), value);
    }
 
private:
    void InitializeFrom(const LinkedList &other)
    {
        if (other.empty())
            return;
 
        iterator it = begin(), another = other.begin();
 
        while (another != other.end())
        {
            if (it == end())
                push_back(*another);
            else
            {
                *it = *another;
                ++it;
            }
 
            ++another;
        }
    }
 
    ListItem *_head;
};
P.S.: Итератор очень полезная вещь, стоит ее активно использовать.

Вернуться к обсуждению:
Реализовать указанные функции-члены для пользовательского класса "Кольцевой двусвязный список" C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2016, 10:17
Готовые ответы и решения:

На основе заданных прототипов реализовать функции-члены для пользовательского класса "Односвязный список"
Извиняюсь,забыла принт опреедлить Преподаватель дал прототипы функций ,которые надо определить для...

STL: реализовать кольцевой упорядоченный двусвязный список
Добрый вечер всем кто открыл эту вкладку! Надо реализовать кольцевой упорядоченный двозвязний...

Кольцевой двусвязный список шаблон класса ошибки
Код выдаёт некоторые ошибки (прикрепили, на картинке): Что исправить? #include &quot;StdAfx.h&quot; ...

Написать конструктор для пользовательского класса "Двусвязный список"
Попытался построить двусвязный список. Как написать этот конструктор ? Может быть правильно будет...

Преобразовать линейный двусвязный список в кольцевой двусвязный
Приветствую. Помогите разобраться как преобразовать линейный двусвязный список в кольцевой...

29
16.10.2016, 10:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2016, 10:17
Помогаю со студенческими работами здесь

Переделать двусвязный список в двусвязный кольцевой
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это запрограммировать? и...

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Всем добрый вечер! Помогите пожалуйста с лабораторной работой, дело в том что скоро сдавать, а я в...

Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список»
Реализовать классы «стек» и «очередь» наследованием от базового класса «двусвязный список». Создать...

Кольцевой двусвязный список
Что здесь нужно поменять, чтобы был кольцевой двусвязный список? #include &lt;iostream&gt; #include...

Двусвязный кольцевой список
Уважаемые форумчане, не могли бы вы помочь с заданием: Написать программу для работы со...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru