|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.12.2016, 01:04 | #1 |
Пользователь
Регистрация: 12.05.2016
Сообщений: 11
|
Оставить в списке числа, которые встречаются только один раз - C++
необходимо:сформировать из последовательности целых чисел линейный список и преобразовать его, оставив только те числа, которые встречают в списке только 1 раз.
никак не могу удалить повторяющиеся элементы, не знаю как это реализовать, вот все, что получилось осилить: #include <iostream> #include <iomanip> #include <string.h> #include <fstream> using namespace std; struct para { int inf; para *ref; }; para *create(istream& input) { int inf = 0; input >> inf; para *para_list = new para; para_list->inf = inf; para *p = para_list; while (cin >> inf) { p->ref = new para; p = p->ref; p->inf = inf; } p->ref = NULL; input.clear(0); return para_list; } void print_list(para *para_list) { cout << setw (20) << "Исходный список:" << endl; for (; para_list && para_list->inf; para_list = para_list->ref) { cout << setw(20) << para_list->inf << endl; } } void delete_list(para *para_list) { para *p; while (para_list) { p = para_list; para_list = para_list->ref; delete p; } } int main() { setlocale(LC_ALL, "Russian"); para *para_list = create(cin); print_list(para_list); delete_list(para_list); cin.clear(0); return 0; } |
04.12.2016, 01:11 | #2 | |
Заблокирован
Регистрация: 29.11.2016
Сообщений: 215
|
Цитата:
|
|
04.12.2016, 01:15 | #3 |
Пользователь
Регистрация: 12.05.2016
Сообщений: 11
|
дело не в укорочении кода, а в том что возникла проблема с тем, чтобы удалить повторяющиеся элементы.
|
04.12.2016, 01:44 | #4 |
Заблокирован
Регистрация: 29.11.2016
Сообщений: 215
|
|
04.12.2016, 02:28 | #5 |
Пользователь
Регистрация: 12.05.2016
Сообщений: 11
|
Задание на работу с Линейными списками, нам не разрешают пользоваться стандартными библиотеками!
Как учат так и пишем! |
04.12.2016, 03:04 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 27.11.2012
Сообщений: 5,657
|
Пройтись по списку, удаляя для каждого очередного значения все последующие повторы как-то так:
Код:
Благими намерениями устлана дорога на programmersforum.ru
Последний раз редактировалось MihalNik; 04.12.2016 в 03:08. |
04.12.2016, 14:08 | #7 | |
Заблокирован
Регистрация: 29.11.2016
Сообщений: 215
|
Плохо учат.
Можете порепетировать вместо вашей простыни вот с таким кодом, например: Код:
Наслаждайтесь. (здесь точно такая же "работа с Линейными списками") P.S. Я даже прогнал это, чтобы нагляднее (только компилировать это нужно с опциями компилятора совместимости с C++11): Код:
Цитата:
Создайте свою отдельную тему, и пишите о том как надо учить сколько душе угодно. Последний раз редактировалось MihalNik; 04.12.2016 в 17:38. Причина: примечание |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести только те слова сообщения, которые встречаются в нем ровно один раз С++ | filimoncc | Помощь студентам | 11 | 23.02.2014 19:30 |
Вывод на экран символов, которые встречаются только один раз. | Tsunami | C++ Builder | 1 | 10.04.2011 19:00 |
[C++ Builder 6] Вывод на экран символов, которые встречаются только один раз. | Tsunami | Помощь студентам | 0 | 07.04.2011 09:21 |
Из заданной символьной строки, выбрать те символы, которые встречаются в ней только один раз... | Banny | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.12.2008 06:15 |