Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 07.02.2017
Сообщений: 40
1

Создать циклический список list

09.04.2017, 23:33. Показов 3507. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
подскажите как list сделать циклическим. допустим у нас есть
C++
1
list <int> l
состоящий из 10 элементов.
Нам нужно что бы по счёту 3 элемент убрался. то есть 1 2 4 5 6 7 8 9 10
Потом считаем от 4-того элемента, и 3 по счёту убираем 1 2 4 5 7 8 9 10
и так дальше 1 2 4 5 7 8 10 -> 1 4 5 7 8 10 -> 1 4 5 8 10 -> 4 5 8 10 -> 4 5 10 -> 4 10 и пока не остается 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
#include <iostream>
#include <list>
#include <iterator>
 
using namespace std;
 
void main() { setlocale(0,"");
 
    list<int>l; int user; cin >> user; int vsp = 1;
    for(int q(6); q < (user+1)*2; ++q) { l.push_back(q); cout << q << " ";} 
    
    for (std::list<int>::iterator i = l.begin();l.size() != 2 ; )   {
    
        vsp++; i++; 
 
        if(vsp == 3) { 
        cout << endl; vsp =0;  
            if(i == l.end()) user = 1;l.erase(i--);  
        
        if (user == 1) 
                { user =0; vsp++; i = l.begin();}
        
 
        for(auto q : l) cout << q << " ";} }
 
cout << endl; system("pause");}
Не могу придумать условие при котором итератор с последнего элемента будет возвращаться к 1вому и при этом не будет нарушатся счёт (для удаления 3 элемента)
Может у вас есть какие нибудь идеи
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2017, 23:33
Ответы с готовыми решениями:

Создать динамический шаблонный класс односвязный список - List
помогите пожалуйста с задание в универ задали и я вот сижу парюсь! буду очень вам благодарен...

Создать класс Элемент списка (Node), а затем класс Список (List)
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от...

list. Cоздать список из результатов(с массивами), а потом просмотреть весь список
Подскажите пожалуйста как мне создать список из моих результатов(с массивами) а потом просмотреть...

Создать список целых чисел. Создать новый список, записав в него отрицательные элементы
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы.(задачу...

3
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
09.04.2017, 23:38 2
Похоже на задачку "Считалочка"
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
10.04.2017, 01:31 3
Лучший ответ Сообщение было отмечено Akalit как решение

Решение

C++
1
2
3
4
5
6
for (std::list<int>::iterator i = l.begin();l.size() != 2 ; )   {
    i++; if(i==l.end()) i=l.begin();
    i++; if(i==l.end()) i=l.begin();
    cout << *i << endl; // печатаем перед удалением
    i=l.erase(i);
}
1
0 / 0 / 1
Регистрация: 07.02.2017
Сообщений: 40
10.04.2017, 06:15  [ТС] 4
Да как у вас это получается ><
Большое спасибо)
0
10.04.2017, 06:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2017, 06:15
Помогаю со студенческими работами здесь

Циклический однонаправленный список
Циклический однонаправленный список, упорядоченный по убыванию. Хотелось бы увидеть пример...

Двусвязный циклический список
Необходимо было создать двусвязный циклический список,вот что у меня получилось: #include...

Двусвязный циклический список - C++
Разработать программу, которая читает с клавиатуры последовательность целых чисел, ни одно из...

Циклический двусвязный список
Здравствуйте, задали написать програмку: Организовать заданную структуру данных. Определить...


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

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