Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Числа Фибоначчи Помогите пожалуйста решить задачу на С: Определить сумму всех чисел Фибоначчи не превышающих 1000 https://www.cyberforum.ru/ cpp-beginners/ thread84898.html Решите пожалуйста C++
1.Сосчитать сколько в матрице неупорядоченных строк и распечатать их. 2.Выбросить из строки самое короткое и самое длинное слово. 3.Из заданного множества точек выбрать 3 образующие треугольник максимального периметра. 4.Для двух произведений целых чисел получить двоичную запись. Определить над ними операции сложения и вычитания. Проверить результат в десятичной системе. Заранее спасибо
C++ описать словами указатель на функцию, функтор https://www.cyberforum.ru/ cpp-beginners/ thread84873.html
здравствуйте, помогите мне грамотно описать словами указатель на функцию, функтор. мол когда и зачем они используются Добавлено через 1 час 21 минуту ладненько давайте вместе =] может у кого еще какие идеи будут указатель на функцию - указатель обьявляет на символьную строку а функция просто предваряет имя переменной звездочкой пример был-бы таким void some_function(char *string);
C++ Закрасить участок шахматной доски Люди помогите плиз, у меня в С++ вообще башка не варит((( написать программу для выполнения следующей задачи (): Нужно решить такую задачу Дана шахматная доска размером N*N (1< N≤ 500), в некоторых клетках которой стоят ладьи. Будем считать, что две ладьи бьют друг друга, если они стоят на одной горизонтали или вертикали и между ними нет других ладей. Требуется написать программу, которая... https://www.cyberforum.ru/ cpp-beginners/ thread84856.html
C++ Б-дерево(B-tree)
Доброе время суток всем, колдую над кодом уже который день. Вроде Б дерево создал, теперь нужно вывести на екран имя, которое начинается например на "a" или на "al" или на "tr" т.е. все ветки ниже последней буквы введенного слова, ну как в гугле пишеш пару букв а он тебе выдает варианты. У меня в коде может и есть ошибки, но в общем код работает. прошу помочь кто чем может, огромное спасибо. ...
C++ Указатели https://www.cyberforum.ru/ cpp-beginners/ thread84847.html
Составить программу, которая преобразует массивы А(1..10) и В(1..12) следующим образом: элементы, меньшие среднего арифметического всех элементов заменить нулём. Преобразование массивов оформить в виде функции.
C++ Среди заданных целых чисел k,l,m найти пары кратных Среди заданных целых чисел k,l,m найти пары кратных. То что получилось\получается у меня - бред%) https://www.cyberforum.ru/ cpp-beginners/ thread84842.html C++ консольное приложение ,проверьте ошибки
Помогите плз, надо исправить ошибки
C++ Перевести простую пробь в десятичную https://www.cyberforum.ru/ cpp-beginners/ thread84833.html
доброго времини суток! в программировании я новичек. мне подкинули задачку: умеется числитель и знаменатель простой дроби - натуральные числа. дробь правильная нада написать программу которая переводит простую пробь в десятичную и если имеется период то записывает его как в математике "0.(число в периоде)" может ктото подскажет какую то закономерность по какой можно оперделить какие...
C++ Метод дихотомии (как метод оптимизации) https://www.cyberforum.ru/ cpp-beginners/ thread84831.html
Нужно написать программу решения метода дихотомии (как метод оптимизации) на С++.А я в С++ новичок, многого не знаю. Пожалуйста, помогите кто-нибудь! Буду очень благодарна!
Массивы C++
Товарисчи программисты помогите мне решить 2 задачи ....оч нужно ...=( <---грустный смайл )) Задача 1 )В одномерном массиве, состоящем из 25 вещественных элементов, вычислить: 1) минимальный элемент массива; 2) сумму элементов массива, расположенных между первым и последним положительными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы равные...
C++ Проверка введенного числа на чётность https://www.cyberforum.ru/ cpp-beginners/ thread84825.html
Написать программу, которая проверяет, является ли введенное пользователем целое число четным. Хэлп ми плз )
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
12.01.2010, 16:25 0

Класс односвязного списка структур - C++ - Ответ 474401

12.01.2010, 16:25. Показов 1693. Ответов 2
Метки (Все метки)

Лучший ответ Сообщение было отмечено как решение

Решение

Надеюсь моя разработка тебе поможет: я проповедую open source поэтому и выложил
свою разработку:

Добавлено через 15 минут
Должен работать:
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
#include <iostream.h>
 
//Оболочка список
class List{
private:
 
//Описание узла списка
struct Node {
int data;
Node *next;
Node *prev;
};
//-------------------------------------------------------------
 
Node *pbeg;          //начало списка
Node *pend;          //конец списка
int size;            //размер списка
 
public:
//Функции автоматизации----------------------------------------
List(){pbeg = NULL; pend =NULL; size = 0;} //Конструктор по умолчанию создаёт пустой список
List(int d);
List(const List&p);
virtual~ List();
//-------------------------------------------------------------
int popb();                //выборка из начала  
int find(int key);         //найти в списке
long add(int d);           //Добавить в конец списка           
const List& operator = (const List&p);
 
//Дополнителные фишки------------------------------------------
List& operator >>(int&d);      //альтернатива добавлению в конец
List& operator <<(int&d);      //альтернатива выборке
inline int getsize() const { return size; }    //получение размера
 
inline bool isEmpty()const { if(pbeg!=NULL)return 0; else return 1; }  //проверка существования списка
void Update();            //отчищает весь список: делает полную выборку из начала
};
 
//-------------------------------------------------------------
List::List(int d){
size = 0;           
Node *pv = new Node; //Созаём узел
pv->data=d;
pv->next = NULL;     //признак конца списка
pv->prev = NULL;     //признак начала списка
//Формируем начало и конец списка
pbeg=pv;
pend = pbeg;
size++;              //увеличиваем размер, один узел создан
//-------------------------------
}
 
//Конструтор копирования----------
List::List(const List&p){
//Если копировать не от куда, то есть передаваемы объект список пуст
//Ничего не делаем, создаём как: конструктор по умолчанию
if(p.pbeg==NULL||p.pend==NULL){
pbeg = NULL;
pend = NULL;
size=0;
}
 
//Иначе создаём список и копируем в него другой список
else { 
    
pbeg = NULL; //обнуляем
pend = NULL; //обнуляем
 
//Создаём начало-------------------
{
Node * pv = new Node;
pv->data=p.pbeg->data;  //копируем данные из начала
pv->next = NULL;      //Cледёющего ещё нет
pv->prev = NULL;      //предыдущего нет
pbeg = pv;            //форируем начало
pend = pbeg;          //формируем конец
}
 
{
//Формируем оставшиусь часть списка путём копирования элементов из драгого списка
Node *tmp = p.pbeg;
tmp=tmp->next;       //первый узел пропускаем
while(tmp){
//Добавляем в конец нового списка узлы
Node *pv = new Node ; //создаём новый узел
pv->data=tmp->data;     //копируем данные
pv->next = NULL;      //следующего пока нет
pv->prev = pend;      //новый связывается с последним
pend->next=pv;        //последний связывается с новым
pend =pv;             //новый становится последним
tmp=tmp->next;        //cледующий
}
 
}
 
//---------------------------------
size = p.size;  //копируем счётчик
}
 
}
 
//Операция присваивания-------------
 
const List& List::operator = (const List&p){
 
if(&p==this)return *this;    //проверка на самоприсваивание 
//Если не чего присваивать--------------------------------
if(p.pbeg==NULL||p.pend==NULL)return *this;
 
//Иначе создаём список и копируем в него другой список
else { 
Update();     //отчищаем список
 
pbeg = NULL;  //обнуляем
pend = NULL;  //обнуляем
 
//Создаём начало-------------------
{
Node * pv = new Node;
pv->data=p.pbeg->data;       //копируем данные из начала
pv->next = NULL;     //Cледующего ещё нет
pv->prev = NULL;     //предыдущего нет
pbeg = pv;           //форируем начало
pend = pbeg;         //формируем конец
}
 
{
//Формируем оставшуюся часть списка путём копирования элементов из другого списка
Node *tmp = p.pbeg;
tmp=tmp->next;        //первый узел пропускаем
 
//проходим по списку с которого копируем
while(tmp){
//Добавляем в конец нового списка узлы
Node *pv = new Node ; //создаём новый узел
pv->data=tmp->data;     //копируем данные
pv->next = NULL;      //следующего пока нет
pv->prev = pend;      //новый связывается с последним
pend->next=pv;        //последний связывается с новым
pend =pv;             //новый становится последним
tmp=tmp->next;        //cледующий
}
 
}
 
//---------------------------------
size = p.size;  //копируем счётчик
 
}
 
return *this ;               //возвращаем себя
 
}
 
 
 
 
 
//Деструктор-----------
List::~List(){
Update();     //отчищаем весь список если в нём что то есть
 
}
 
 
//Добавить в конец списка  
long List::add(int d){
//Если список не создан создаём 
if(pbeg==NULL){
size = 0;           
Node *pv = new Node; //Созаём узел
pv->data=d;
pv->next = NULL;     //признак конца списка
pv->prev = NULL;     //признак начала списка
//Формируем начало и конец списка
pbeg=pv;
pend = pbeg;
size++;              //увеличиваем размер, один узел создан
return 0;            //создали первую структуру
}
    
//Иначе добавляем в конец списка    
else{
Node *pv = new Node;    
pv->data=d;
pv->next = NULL;
 
pv->prev = pend;   //cвязываемся с конецом списка
pend->next = pv;   //конец связывается с новым узлом
pend=pv;           //концом становится новый узел
size++;            //увеличиваем размер, оузел добавлен в конец
return 1;          //добавили в конец  
}
 
 
}
 
//Добавление в конец: альтернатива
List& List::operator >>(int&d){
add(d);
return *this;
 
}
 
//выборка из начала
int List::popb(){
Node * pv = NULL;  //создаём указатель
//Если список не пуст
pv=pbeg;          //получаем узел из начала
int data(0);      //переменная через которую возвращаем значение
//Если есть что удалять
if(pv!=NULL){
pbeg=pbeg->next;   //следующий в начало
data=pv->data;     //получаем данные из начала
delete pv;         //удаляем узел: старое начало
size--;            //уменьшаем счётчик размера
return data;       //возвращаем полученные данные
}
//----------------------------------------------------------------
return data;       //если список пуст
 
}
 
//альтернатива выборке
List& List::operator <<(int&d){
d=popb();    
return *this;
 
}
 
//отчистак всего списка
void List::Update(){
//Пока не пуст делаем выборку---
while(!isEmpty()){
    popb();
}
 
}
 
//поиск----------------------------
int List::find(int key){
Node *tmp = pbeg;  //получаем узел из начала
int t(0);         //просто на всякий случай для возврата
//Перемещаемся от начала к концу--------------------
while(tmp){
if(tmp->data==key)return tmp->data;  //если ключ совпал, возвращаем данные
tmp=tmp->next;                     //следующий во временный указатель
}
//--------------------------------------------------
return t;          //Если не нашли
 
}
 
 
 
 
 
 
 
//Клиент------------
void main(){
return;
}
//------------------


Вернуться к обсуждению:
Класс односвязного списка структур C++
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2010, 16:25
Готовые ответы и решения:

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

Создать шаблонный класс библиотека на основе односвязного списка
мне нужно создать класс библиотека на основе односвязного списка, но список должен быть шаблонным,...

Напишите класс «Стек» для целочисленных данных на основе односвязного списка
Напишите класс «Стек» для целочисленных данных на основе односвязного списка. Предусмотрите функции...

Разработать шаблонный класс "дек" на основе односвязного списка
3. Разработать шаблонный класс &quot;дек&quot; на основе односвязного списка. Реализовать операции: ...

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

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур.
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую...

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

Из односвязного списка в двусвязный
Помогите, кусок переделать в двусвязный список. #include &lt;iostream&gt; using namespace std; ...

Печать односвязного списка
Доброго времени суток. Выполняя задание возникла трудность. Использую метод для этого, но почему-то...

Сортировка односвязного списка
Помогите пишу курсач сделал все ф-ции кроме сортировки в голову не приходит как что не пробовал без...

Сортировка односвязного списка
ребят, нужна помощь, учусь на втором курсе для зачета нужно написать сортировку односвязного...

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