Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
1

Немного о списках

13.09.2017, 20:10. Показов 1454. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно реализовать класс список но я даже не работал со списками а тут надо класс написать. Я знаю что у списков нет индексов а связаны они между собой ссылкой друг на друга. Ну это всё что я знаю. В общем мне нужен хороший ресурс на эту тему может книгу какую - нибудь посоветуете, сам весь инет облазил но ничего нужного для меня не нашел

Добавлено через 3 минуты
Мне нужно почитать о всех структурах данных такие как Stack, queue, dqueue и т д
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2017, 20:10
Ответы с готовыми решениями:

Немного о списках
Помогите разобраться со списками(хотя бы односвязными) Подскажите пример простого кода, где...

Ошибка в списках
#include <iostream> #include <list> using namespace std; void main() { list<int> L, L1, L2;...

Очередь в списках
нужно в данную очередь вставить структуру. структуру-то я написала, а дальше не могу разобраться,...

Ошибка в списках
В функции сравнения Compare не инициализируется переменная y. Зато такая же переменная h...

19
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
13.09.2017, 20:33 2
no swear,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <list>
using namespace std;
 
template <typename T>
struct MyList : std::list<T>
{
    using list<T>::list;
};
 
int main()
{
    MyList<int> lst{ 1, 2, 3 };
 
    for (auto const& i : lst)
        cout << i << endl;
 
    system("pause");
}
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
13.09.2017, 20:43  [ТС] 3
Я всегда видел что при работе со списками используется вроде указатель Next указывающий на следующий элемент списка

Ещё нам препод дал такую картинку. Там есть index, val, next. val это значение которое хранится в списке, next указатель указывающий на следующий элемент а зачем index нужен?
Миниатюры
Немного о списках  
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
14.09.2017, 20:27  [ТС] 4
Я сказал что-то глупое? почему тема умерла?
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
14.09.2017, 20:37 5
Цитата Сообщение от no swear Посмотреть сообщение
реализовать класс список
в моем сообщении выше я "реализовал" этот класс списка
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
14.09.2017, 20:51  [ТС] 6
Спасибо огромное за этот код но я бы хотел сам реализовать этот класс в более так сказать расширенном виде и мне нужен не только класс список мне нужны другие структуры данных Stack, queue, dqueue и т д. Книга какая - нибудь или ресурс чтобы почитать об этом. Я сам всё перерыл но ничего не нашел по этому вопросу
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
14.09.2017, 20:57 7
Цитата Сообщение от no swear Посмотреть сообщение
а зачем index нужен?
А кто ж его знает? Вам виднее.
Списки бывают разные. На форуме, кстати,
есть реализации и списков и стеков и очередей.

Почитать можно любую книжку о структурах данных.
1
3 / 3 / 0
Регистрация: 05.09.2017
Сообщений: 15
14.09.2017, 21:31 8
Может такая схема поможет реализовать список
Миниатюры
Немного о списках  
1
3 / 3 / 0
Регистрация: 05.09.2017
Сообщений: 15
15.09.2017, 01:51 9
Файл List.h:
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
#pragma once
 
#include <iostream>
 
 
// Узел списка
template <typename T>
struct Node
{
    T         m_value;
    Node    * m_prev;
    Node    * m_next;
 
    Node(T value=T());
};
 
 
// Список
template <typename T>
class List
{
private:
    Node<T> * m_head;
    Node<T> * m_tail;
 
public:
    List();
    ~List();
    
    void PushFront(T value);
    void PushBack(T value);
 
    bool PopFront();
    bool PopBack();
 
    void Clear();
 
    void Print() const;
};
 
 
// ============================================================================
// Node
 
template<typename T>
Node<T>::Node(T value)
{
    m_value = value;
    m_prev = m_next = NULL;
}
 
// Node
// ============================================================================
 
 
 
// ============================================================================
// List
 
template <typename T>
List<T>::List()
{
    m_head = m_tail = NULL;
}
 
 
template<typename T>
List<T>::~List()
{
    Clear();
}
 
 
template<typename T>
void List<T>::PushFront(T value)
{
    if (!m_head)
    {
        m_head = new Node<T>(value);
        m_tail = m_head;
    }
    else
    {
        m_head->m_prev = new Node<T>(value);
        
        m_head->m_prev->m_next = m_head;
 
        m_head = m_head->m_prev;
    }
}
 
 
template<typename T>
void List<T>::PushBack(T value)
{
    if (!m_tail)
    {
        m_tail = new Node<T>(value);
        m_head = m_tail;
    }
    else
    {
        m_tail->m_next = new Node<T>(value);
 
        m_tail->m_next->m_prev = m_tail;
 
        m_tail = m_tail->m_next;
    }
}
 
 
template<typename T>
bool List<T>::PopFront()
{
    if (!m_head)
    {
        return false;
    }
    else
    {
        if (m_head->m_next)
        {
            m_head = m_head->m_next;
            delete m_head->m_prev;
            m_head->m_prev = NULL;
        }
        else
        {
            delete m_head;
            m_head = NULL;
        }
 
        return true;
    }
}
 
 
template<typename T>
bool List<T>::PopBack()
{
    if (!m_tail)
    {
        return false;
    }
    else
    {
        if (m_tail->m_prev)
        {
            m_tail = m_tail->m_prev;
            delete m_tail->m_next;
            m_tail->m_next = NULL;
        }
        else
        {
            delete m_tail;
            m_tail = NULL;
        }
 
        return true;
    }
}
 
 
template<typename T>
void List<T>::Clear()
{
    while ( PopFront() )
        ;
}
 
 
template<typename T>
void List<T>::Print() const
{
    const Node<T>   * node = m_head;
 
    while (node)
    {
        std::cout << node->m_value << ' ';
        node = node->m_next;
    }
 
    std::cout << std::endl;
}
 
// List
// ============================================================================


Основной файл:
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
#include <iostream>
#include "Include\List.h"
 
 
// ================================================================================================
int main()
{
    List<char>      charList;
    charList.PushBack('a');
    charList.PushBack('b');
    charList.PushBack('c');     // charList: 'a', 'b', 'c'
    charList.Print();
    charList.Clear();
 
    List<int>       intList;
    intList.PushFront(1);
    intList.PushFront(2);
    intList.PushFront(3);       // intList: 3, 2, 1
    intList.Print();
    intList.Clear();
 
    List<double>    doubleList;
    doubleList.PushBack(1.1);
    doubleList.PushFront(2.2);
    doubleList.PushBack(3.3);   // doubleList: 2.2, 1.1, 3.3
    doubleList.Print();
    doubleList.Clear();
 
    system("pause");
    return 0;
}
// ================================================================================================
1
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
15.09.2017, 12:40 10
no swear,
1."Структуры данных и алгоритмы", Ахо. (Примеры на языке Паскаль)
2."Как программировать на С++", Дейтелы. (Примеры на Си)
3."Алгоритмы на С++", Сэджвик.
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
17.09.2017, 11:22  [ТС] 11
У меня появилось пару вопросов по поводу указателя *Next и *Head. Код с одного сайта взял
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
#include <conio.h>
#include <iostream.h>
 
struct element //Структура с инфополями и адресным полем
{
 int x; //Инфополе. значения из x будут передаваться в список
 element *Next; //Адресное поле
};
 
class List //Класс Список
{
 element *Head; //Указатель на последний активный элемент или просто голова списка
 public:
  List() {Head=NULL;} //Конструктор и инициализация указателя пустым значением
 ~List(); //Деструктор. Далее он вынесен за класс
 void Add(int x); //Функция для добавления значений в список
 void Show(); //Функция для отображения списка на экране
};
 
List::~List() //Деструктор вынесен за класс
{
    while (Head!=NULL)  //Пока по адресу не пусто 
     {    
        element *temp=Head->Next; //Временная переменная для хранения адреса следующего элемента
        delete Head; //Освобождаем адрес обозначающий начало
        Head=temp; //Меняем адрес на следующий
     }
}
 
void List::Add(int x) //Функция добавления элементов в список
{
 element *temp=new element; //При каждом вызове выделяется память
temp->x=x; //Записываем x в элемент структуры  element (в x структуры element)
temp->Next=Head; //Указываем, что след. элемент это объект по адресу Head
Head=temp; //Указываем, что последний активный элемент это только что введенный
}
 
void List::Show() //Функция отображения списка на экране
{
 element *temp=Head; //Определяем указатель, который изначально он равен адресу начала списка
 
 while (temp!=NULL) //До тех пор пока не встретит пустое значение
 {
  cout<<temp->x<<" "; //Выведет элемент x из списка
  temp=temp->Next; //Указываем, что далее нам нужен следующий элемент
 }
}
 
void main()
{
 clrscr();
  int N; //Число элементов в список
  int x; //Элементы вводимые в список
  List lst; //Переменная, тип которой список
 
   cout<<"N = ";cin>>N; //Указали сколько элементов вводить в список
 
for (int i=0;i<N;i++)
 {
  cout<<i+1<<". x = "; cin>>x; //Ввод x с клавиатуры
  lst.Add(x); //Добавление элемента в список
 }
 
lst.Show(); //Вывод списка на экран
 getch();
}
Как именно работает функция Add? Как *Next сохраняет все адреса следующих значений?
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
17.09.2017, 12:58 12
Next сохраняет только адрес следующего элемента.
А Next следующего элемента сохраняет адрес еще следующего. И так далее.
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
17.09.2017, 13:36  [ТС] 13
Когда список пустой указатель *Next = NULL? А когда добавляем 1 элемент указатель *Next до сих пор равен NULL и когда добавляем 2 элемент указатель *Next принимает адрес значения второго элемента?
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
17.09.2017, 13:52 14
Нет, первого.
0 элементов: head = NULL
1 элемент: head = elem1 ; elem1=(data1; next = NULL);
2 элемента: head = elem2; elem2=(data2; next = *elem1) ; elem1=(data1; next = NULL);
3 элемента: head = elem3; elem3=(data3; next = *elem2) ; elem2=(data2; next = elem1) ; elem1=(data1; next = NULL);
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
17.09.2017, 14:11  [ТС] 15
data что это? А обязательно объявлять отдельную структуру для хранение узлов списка? или можно обойтись одним классом?

Добавлено через 7 минут
Я вот написал что - то своё, простенькое, вроде работает
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
#include <iostream>
using std::cin;
using std::cout;
 
class List
{
    List *Next;
    List *Head;
    int x;
 
public:
    void addList(int);
    List();
    //~List();
    void Show();
};
 
List::List()
{
    Next = NULL;
    Head = NULL;
}
 
void List::addList(int n)
{
    List *tmp = new List;
    tmp -> x = n;
    tmp -> Next = Head;
    Head = tmp;
}
 
void List::Show()
{
    List *tmp = Head;
    while(tmp != NULL)
    {
        cout << tmp -> x << ' ';
        tmp = tmp -> Next;
    }
}
 
int main()
{
    List l;
    l.addList(1);
    l.addList(2);
    l.addList(3);
    l.Show();
    return 0;
}
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
17.09.2017, 14:12 16
data это любые данные. Не заводить же список ради него самого.
Одним классом вряд ли выйдет. Впрочем, никто не мешает попробовать.
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
17.09.2017, 15:16  [ТС] 17
А что если взять указатель *next и *head не как тип структуры который мы объявили а как тип int например?
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
17.09.2017, 16:26 18
как он тогда будет указывать на другие объекты в куче?
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
17.09.2017, 19:19  [ТС] 19
Поэтому он и должен быть пользовательского типа? Т. е. тип мы ему сами задаём в структуре или в классе чтобы он отличал "своего от чужого"?

Добавлено через 1 час 34 минуты
Вот что у меня получилось. Написал Шаблонный односвязный список, буду рад критике и любым замечаниям.
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
#include <iostream>
using std::cin;
using std::cout;
 
template<typename T>
struct NODE
{
    NODE *Next;
    T x;
};
 
template<typename T>
class List
{
    NODE<T> *Head;
    int size;
 
public:
    void addList(T);
    List();
    ~List();
    void Show();
    void Delete(int);
};
 
template<typename T>
void List<T>::Delete(int n)
{
    NODE<T> *p = Head;
    int k = 1;
    if(n == 1)
    {
        NODE<T> *tmp;
        tmp = Head;
        Head = p -> Next;
        delete tmp;
        return;
    }
 
    if(n == size)
    {
        while(k < n - 1)
        {
            p = p -> Next;
            k++;
        }
        p -> Next = NULL;
        return;
    }
 
    while(k < n - 1 && k < size)
    {
        //cout << p -> x << ' ';
        p = p -> Next;
        k++;
    }
    //cout << k << std::endl;
    //cout << p -> x << ' ';
    p -> Next = p -> Next -> Next;
    size--;
}
 
template<typename T>
List<T>::List()
{
    Head = NULL;
    size = 0;
}
 
template<typename T>
void List<T>::addList(T n)
{
    NODE<T> *tmp = new NODE<T>;
    tmp -> x = n;
    tmp -> Next = Head;
    Head = tmp;
    size++;
}
 
template<typename T>
void List<T>::Show()
{
    NODE<T> *tmp = Head;
 
    while(tmp != NULL)
    {
        cout << tmp -> x << ' ';
        tmp = tmp -> Next;
    }
}
 
template<typename T>
List<T>::~List()
{
    NODE<T> *tmp;
    while(Head != NULL)
    {
        tmp = Head -> Next;
        delete Head;
        Head = tmp;
    }
}
 
int main()
{
    List<int> l;
    for(int i = 10; i >= 1; --i) l.addList(i);
 
    //l.Delete(10);
    l.Show();
    return 0;
}
Добавлено через 15 минут
И всё равно я не до конца понимаю весь смысл списка
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
19.09.2017, 19:47  [ТС] 20
Шаблонный двусвязный список (Код на Builder 6)
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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
template<typename T>
struct Node
{
        T x;
        int index;
        Node *Next;
        Node *Prev;
};
 
template<typename T>
class List
{
        Node<T> *Head;
        Node<T> *Tail;
        int size;
 
public:
        List();
        ~List();
        void PushFront(T);
        void PushBack(T);
        void Delete(int);
        void ShowBack(TStrings*);
        void ShowFront(TStrings*);
        void ShowElement(int, TStrings*);
        void ReIndex();
        int ShowCount();
        void Sort();
        T& operator[](int);
        void ClearList();
};
 
template<typename T>
void List<T>::ClearList()
{
        Node<T> *tmp;
        while(Head != NULL)
        {
            tmp = Head -> Next;
            delete Head;
            Head = tmp;
        }
 
        Head = NULL;
        size = 0;
}
 
template<typename T>
void List<T>::ShowElement(int i, TStrings *s)
{
        Node<T> *tmp = Head;
        s -> Add("Íàéäåííûé ìàññèâ:");
        String s1, s2;
        while(tmp -> Next && tmp -> index != i)
        {
                tmp = tmp -> Next;
        }
        s1 = tmp -> index;
        s2 = tmp -> x;
        s -> Add("mas[" + s1 + "] = " + s2);
}
 
template <typename T>
T& List<T>::operator[](int i)
{
        Node<T> *p = Head;
        while(p != NULL && p -> index != i)
        {
                p = p -> Next;
        }
 
        return p -> x;
}
 
template<typename T>
void List<T>::ReIndex()
{
        int k = 1;
        Node<T> *p = Head;
        while(p != NULL)
        {
                p -> index = k++;
                p = p -> Next;
        }
}
 
template<typename T>
void List<T>::Sort()
{
        Node<T> *tmp;
        int n = 0, m;
        T swap;
        int iswap;
        while(true)
        {
                m = 0;
                tmp = Head;
                while(true)
                {
                        if(tmp -> x > tmp -> Next -> x)
                        {
                                swap = tmp -> x;
                                tmp -> x = tmp -> Next -> x;
                                tmp -> Next -> x = swap;
 
                                iswap = tmp -> index;
                                tmp -> index = tmp -> Next -> index;
                                tmp -> Next -> index = iswap;
                        }
                        tmp = tmp -> Next;
                        m++;
                        if(m == size - 1) break;
                }
                n++;
                if(n == size - 1) break;
        }
}
 
template<typename T>
int List<T>::ShowCount()
{
        return size;
}
 
template<typename T>
List<T>::List()
{
        size = 0;
        Head = Tail = NULL;
}
 
template<typename T>
List<T>::~List()
{
        Node<T> *tmp;
        while(Head != NULL)
        {
            tmp = Head -> Next;
            delete Head;
            Head = tmp;
        }
}
 
 
template<typename T>
void List<T>::PushFront(T n)
{
        Node<T> *p = new Node<T>;
        if(Head == NULL)
        {
                Head = Tail = p;
                p -> x = n;
                p -> Next = NULL;
                p -> Prev = NULL;
                ReIndex();
                size++;
                return;
        }
 
        Node<T> *q = Head;
        /*while(q -> Prev != NULL)
        {
                q = q -> Prev;
        }*/
 
        q -> Prev = p;
        p -> x = n;
        p -> Prev = NULL;
        p -> Next = q;
        Head = p;
        ReIndex();
        size++;
}
 
 
template<typename T>
void List<T>::PushBack(T n)
{
        Node<T> *p = new Node<T>;
        if(Tail == NULL)
        {
                Head = Tail = p;
                p -> x = n;
                p -> Next = NULL;
                p -> Prev = NULL;
                ReIndex();
                size++;
                return;
        }
 
        Node<T> *q = Tail;
        /*while(q -> Next != NULL)
        {
                q = q -> Next;
        }*/
 
        q -> Next = p;
        p -> x = n;
        p -> Next = NULL;
        p -> Prev = q;
        Tail = p;
        ReIndex();
        size++;
}
 
 
template<typename T>
void List<T>::ShowBack(TStrings *s)
{
        Node<T> *p;
        String s1, s2;
        p = Tail;
        s -> Add("Ìàññèâ:");
        while(p != NULL)
        {
            s1 = p -> index;
            s2 = p -> x;
            s -> Add("mas[" + s1 + "] = " + s2);
            p = p -> Prev;
        }
}
 
template<typename T>
void List<T>::ShowFront(TStrings *s)
{
        Node<T> *p;
        String s1, s2;
        p = Head;
        s -> Add("Ìàññèâ:");
        while(p != NULL)
        {
            s1 = p -> index;
            s2 = p -> x;
            s -> Add("mas[" + s1 + "] = " + s2);
            p = p -> Next;
        }
}
 
template<typename T>
void List<T>::Delete(int n)
{
    Node<T> *p = Head;
    int k = 1;
    if(n == 1)
    {
        Node<T> *tmp;
        tmp = Head;
        Head = p -> Next;
        delete tmp;
        size--;
        //ReIndex();
        return;
    }
 
    if(n == size)
    {
        while(k < n - 1)
        {
            p = p -> Next;
            k++;
        }
        p -> Next = NULL;
        size--;
        //ReIndex();
        return;
    }
 
    while(k < n - 1 && k < size)
    {
        //cout << p -> x << ' ';
        p = p -> Next;
        k++;
    }
    //cout << k << std::endl;
    //cout << p -> x << ' ';
    p -> Next = p -> Next -> Next;
    //ReIndex();
    size--;
    return;
}
0
19.09.2017, 19:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2017, 19:47
Помогаю со студенческими работами здесь

Освобождение памяти в списках
#pragma once class Node { public: int value; Node * next; Node(int data); ~Node(); };

Литература о Связаные списках
Здравствуйте, кто знает какую нить литературу по которой можно понять связаные списки. И зачем...

Нужно найти ошибку в списках
#include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; using std::cin; using std::endl; ...

Работа циклов динамических списках
В программе, основной функции, есть момент где идет поиск количества элементов пеpвой очереди,...


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

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