Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Кольцевые списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск вещественных исключений по формуле http://www.cyberforum.ru/cpp-beginners/thread595313.html
как написать программу для поиска вещественных исключений по формуле С=A/B на С++
C++ Параметры-ссылки Плиз, киньте какую-нибудь простенькую прогу, исп. параметры-ссылки! http://www.cyberforum.ru/cpp-beginners/thread595281.html
Последовательность, упорядочить и удалить члены C++
Доброго времени суток. Прошу помочь с задачей: Дана последовательность из n членов. Оставить без изменения последовательность, если она упорядочена по неубыванию или по невозрастанию, в противном...
Ошибка. Аварийное завершение программы. C++
Товарищи,есть функция.. cor find(cor start) { cor buf=start; cor pv=NULL; char adr; int et,kol,S; double x; cout<<"Данные для оформления заявки на поиск\n"; cout<<"Введите этаж: ";
C++ Создать класс, содержащий сведения о телефонах абонентов http://www.cyberforum.ru/cpp-beginners/thread595275.html
создать класс, содержащий сведения о телефонах абонентов. Класс должен содержать следующие данные: фамилии абонентов, год установки телефона, номер телефона, адрес. Написать программу, выдающую номер...
C++ Ошибки в простых задачах Здраствуйте. Мне, не ождинно для меня, потребовались старые задачки: 1) Количество вхождений слова в текст 2) Вывод только вопросительных предложений Я нашёл у себя коды, но они совершенно не... подробнее

Показать сообщение отдельно
миклух
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 13

Кольцевые списки - C++

03.06.2012, 20:34. Просмотров 794. Ответов 2
Метки (Все метки)

люди добрые, написал программу, теперь надо в ней сделать эти три списка в один кольцевой, но при этом вывод данных должен остаться таким же? как это реализовать? перепишите пожалуйста...

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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <conio.h>
 
using namespace std;
 
struct list  // список
{
 int   x;   // число в элементе списка
 list* next;  // указатель на следущий элемент списка
};
 
struct mixlist  // в целом вся структура
{   
 list* one;  // первый список
 list* two;  // второй список
 list* three; // третий список
};
 
void add(list* &t, int k)  // добавление в список числа
{
 if (t==NULL)  // если список пуст
 {
 t=new list;  // выделяем память под новый элемент
 t->x=k;    // записываем число
 t->next=NULL;  // указатель на следующий пуст, так как он последний в списке
 }
 else  // если список не пуст
 { 
 list* tmp; 
 tmp=t;
 while (tmp->next!=NULL) // достигаем конца списка
 tmp=tmp->next;
 tmp->next=new list; // выделяем память под новый элемент
 tmp->next->next=NULL;  // указатель на следующий пуст, так как он последний в списке
 tmp->next->x=k;  // записываем число
 }
}
 
void add(mixlist* &s, int k) // добавление числа в структуру
{
 if (k%2==0)   // если число делится на 2 
 add(s->one,k);  // то добавляем в первый список
 if (k%3==0)  // если число делится на 3
 add(s->two,k);  // то добавляем во второй список
 if (k%2!=0 && k%3!=0)  // если число не делится ни на 2, ни на 3
 add(s->three,k);  // то добавляем в третий список
}
 
void fill(mixlist* &s)  // заполнение структуруры числами с консоли пока 0 не введено
{
 int k=-1;
 
 cout<<"для окончания ввода, введите 0\n\n";
 
 while (k!=0)
 {
 cout<<"введите целое число: ";
 cin>>k;
 if (k!=0)
 add(s,k);  // добавляем (вызов фунции) если не 0
 }
}
 
 
void show(mixlist* s)  // вывод на экран трех списков
{
 list* tmp;
 
 tmp=s->one; // во временную переменную адрес начала первого списка
 
 cout<<"Список №1: ";
 
 if (tmp!=NULL) // если не пуст этот список
 {
 cout<<tmp->x<<" "; // вывод элемента на консоль
 while (tmp->next!=NULL) // и далее пока есть следующий элемент
 {
 tmp=tmp->next;  // переходим к следующему
 cout<<tmp->x<<" ";  // и выводим его число на консоль
 }                       // аналогично для еще двух списков
 }
 else cout<<"список пуст";
 cout<<endl;
 
 tmp=s->two;   
 
 cout<<"Список №2: ";
 
 if (tmp!=NULL)
 {
 cout<<tmp->x<<" ";
 while (tmp->next!=NULL)
 {
 tmp=tmp->next;
 cout<<tmp->x<<" ";
 }
 }
 else cout<<"список пуст";
 cout<<endl;
 
 
 tmp=s->three;
 
 cout<<"Список №3: ";
 
 if (tmp!=NULL)
 {
 cout<<tmp->x<<" ";
 while (tmp->next!=NULL)
 {
 tmp=tmp->next;
 cout<<tmp->x<<" ";
 }
 }
 else cout<<"список пуст";
 cout<<endl;
 
}
 
void del(list* t)  // удаление списка
{
 if (t!=NULL)
 {
 list* tmp;
 
 while (t->next!=NULL)
 {
 tmp=t;   // копию в tmp
 t=t->next;  // переход к следующему элементу
 delete tmp;  // удаляем через копию предыдущий элемент
 }
 
 delete t;
 }
}
 
void del(mixlist* s)  // удаление трех списков структуры 
{
 del(s->one);
 del(s->two);
 del(s->three);
}
 
 
void main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 char c;
 
 cout<<"\n\nПрограмма сортирует список введенный пользователем в 3 других.\n№1 заполняется четными числами\n№2 заполняется кратными трем\n№3 заполняется оставшимися числами\n";
 
 mixlist* s;  // указатель на структуру
 s=new mixlist;  // выделяем память под нее
 
 s->one=NULL;  // пока списки все пустые
 s->two=NULL;
 s->three=NULL;
 
 fill(s);  // заполняем
 cout<<"\n";
 show(s);   // показываем на консоль
 del(s);   // удаляем списки в ней
 delete s;  // удаляем ее саму
 getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru