Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4

Удалить из списка неупорядоченные подсписки

08.04.2013, 22:28. Показов 3206. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Из списка нужно удалить неупорядоченные подсписки. К примеру, если была последовательность 6 8 2 11 4 9 20 55
должно остаться: 6 8 11 20 55
Помогите пожалуйста реализовать функцию удаления этих элементов. Заранее спасибо!
Мой код:

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
#include "iostream"
#include <time.h>
 
using namespace std;
 
struct node
{
    int value;
    node* next;
    node()
    {
        next = NULL;
    }
};
 
void print(node*, int val)
{
    node* head;
    head = new node;
    head -> value = 11;
    node* tmp;
    node* tmp1;
    tmp = head;
 
    for(int i=0; i < val; i++)
    {
        tmp1 = new node;
        tmp1 -> value = rand()%100;
        tmp -> next = tmp1;
        tmp1 -> next = NULL;
        tmp = tmp1;
    }
 
    cout<<"Список:"<<endl;
 
    for(tmp1 = head; tmp1 != NULL; tmp1 = tmp1 -> next)
    {
        cout << tmp1 -> value <<" ";
    }
    cout << endl;
    cout << endl;
 
    for (int i = 0; i < val; i++)
    {
        if(head->value > head->next->value)
        {
            cout<<head->next->value<<endl;
            //удалить неупорядоченные подсписки, т.е. элементы, которые меньше предыдущего. 
            //в итоге должен быть упорядоченный список
        }
        head = head->next;
    }
}
 
 
int main ()
{
    setlocale(LC_ALL,"");
    int value;
    cout << "Количество элементов в списке:" << endl;
    cin >> value;
    node* head;
    head = new node;
    head -> value = 11;
    print(head, value);
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.04.2013, 22:28
Ответы с готовыми решениями:

Проверить, совпадают ли подсписки двусвязного списка
Проверить, совпадают ли подсписки двусвязного списка

Удалить все символы из списка содержащего подсписки
По идее нужно как-то пересобрать список по условиям. нужно ли переводить этот список в строку, чтобы поудалять эти элементы? вроде не...

Рекурсия: удалить из многоуровневого списка все подсписки, содержащие хотя бы один ноль
дан многоуровневый список x, удалить из него все подсписки содержащие хотя бы один ноль

4
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 17:35
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
#include "iostream"
#include <time.h>
using namespace std;
struct node
{
    int value;
    node* next;
    node()
    {
        next = NULL;
    }
};
 
void print(node*, int val)
{
    node* head;
    head = new node;
    head -> value = 11;
    node* tmp;
    node* tmp1;
    tmp = head;
    for(int i=0; i < val; i++)
    {
        tmp1 = new node;
        tmp1 -> value = rand()%100;
        tmp -> next = tmp1;
        tmp1 -> next = NULL;
        tmp = tmp1;
    }
    cout<<"Список:"<<endl;
    for(tmp1 = head; tmp1 != NULL; tmp1 = tmp1 -> next)
    {
        cout << tmp1 -> value <<" ";
    }
    cout << endl;
    cout << endl;
    ///////////////////////this function
    node* tmp2;
    int i;
    node* tmp3;
    for(tmp3 = head,i = 0; tmp3 != NULL; tmp3 = tmp3 -> next,i++)
    {
        if(i == 0)
            cout << tmp3->value << " ";
        else
        {
            int pos = i;
            int tmp = tmp3->value;
            node* tmp4;
            int j,k = 0;
            for(tmp4 = head,j = 0; tmp4 != NULL,j < i; tmp4 = tmp4 -> next,j++)
            {
                if(tmp > tmp4->value)
                    k++;
            }
            if(k == i)
                cout << tmp << " ";
        }
    }
    cout << endl;
    ///////////////////////this function
}
int main ()
{
    setlocale(LC_ALL,"");
    int value;
    cout << "Количество элементов в списке:" << endl;
    cin >> value;
    node* head;
    head = new node;
    head -> value = 11;
    print(head, value);
    system("pause");
    return 0;
}
Если я правильно понял то получается так.
1
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4
10.04.2013, 00:11  [ТС]
MCKLAS, спасибо огромное!! Все правильно работает!!

Добавлено через 6 часов 14 минут
А можно именно удалить элемент, а не просто не выводить его на экран?
0
544 / 93 / 49
Регистрация: 16.12.2011
Сообщений: 317
15.04.2013, 21:45
GFF, это несложно просто указатели перезаписывать надо в переменные.
0
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4
28.04.2013, 19:09  [ТС]
MCKLAS, у меня никак не получается с удалением элементов. Могли бы Вы написать еще и этот момент?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2013, 19:09
Помогаю со студенческими работами здесь

Получить неупорядоченные тройки элементов списка
В прологе вообще не шарю, могу тока запустить( задачку дали есть список получить неупорядоченные тройки элементов типа , ,

Разделение списка на подсписки: в первый n элементов с начала списка, во второй оставшиеся
Определите функцию, осуществляющую разделение исходного списка на два подсписка. В первый из них должно попасть указанное количество...

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

Разбиение списка на подсписки
Приветствую! Подскажите, пожалуйста, как на Haskell красиво решить вот такую задачу: Имеется массив экспериментальных данных,...

Разбиение списка на всевозможные подсписки
Помоните пожайлуста решить задачу: Построить все возможные подсписки заданного списка. Искал по поиску подобной задачи не нашел. Нужно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru