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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GFF
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4
#1

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

08.04.2013, 22:28. Просмотров 625. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 22:28     Удалить из списка неупорядоченные подсписки
Посмотрите здесь:

Составить программу, которая превращает неупорядоченные массивы В [16] и С [20] следующим образом - C++
Составить программу, которая превращает неупорядоченные массивы В и С следующим образом: меняет значения элементов с максимальным...

Составить программу, которая превращает неупорядоченные массивы В [16] и С [20] по заданному алгоритму. - C++
НЕ могу никак написать код программы вот этой задачи: 1. Составить программу, которая превращает неупорядоченные массивы В и С ...

Удалить элемент из списка - C++
Нужно удалить елемент из списка. Вот написал такую ф-ю. Но она почему то вылетает. Буду очень благодарен если поможете)) void...

Удалить элемент из списка - C++
Есть список. Надо удалить тот елемент который размещен за заданым. Я пробовал чтото написать(55 строка) но оно не удаляет.#include...

Из списка удалить положительные элементы - C++
Создать линейный односвязный (двухсвязный) список. Из списка удалить положительные элементы, превышающие заданную величину, а затем...

Удалить первый элемент из списка - C++
Всем хай! Есть задача, создать список и выполнить некие операции надо ним и так список: struct element { char a; ...

Удалить из списка элементы меньшие 10 - C++
Удалить из списка элементы меньшие 10 Добавлено через 19 минут нужно в этой задаче создать список и чтобы в нем удалились элементы...

Как удалить элемент из списка - C++
for(auto&amp;i:M) { getline(i.GetF(),str); if(i.GetF().eof()) M.remove(i); cout&lt;&lt;str&lt;&lt;&quot;\n&quot;; ...

Удалить из списка нужные компоненты! - C++
Доброго времени суток, проблема следующая: есть список со следующими параметрами: struct odin { wchar_t znak; wchar_t oper1; ...

Удалить элемент из односвязного списка - C++
У нас есть односвязный список и указатель на один из его элементов, как удалить этот элемент из списка, оставив список целостным ?(сделать...

Удалить повторяющиеся символы из списка - C++
Удалить повторяющиеся символы из списка.с помощью двусвязного списка

Удалить второй элемент списка - C++
Привет всем, сижу уже 4 часа, надо написать программу, чтобы она удаляла не 1-й элемент, а 2-й, пробую передвигать указатель, но консоль...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 17:35     Удалить из списка неупорядоченные подсписки #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
#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;
}
Если я правильно понял то получается так.
GFF
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4
10.04.2013, 00:11  [ТС]     Удалить из списка неупорядоченные подсписки #3
MCKLAS, спасибо огромное!! Все правильно работает!!

Добавлено через 6 часов 14 минут
А можно именно удалить элемент, а не просто не выводить его на экран?
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
15.04.2013, 21:45     Удалить из списка неупорядоченные подсписки #4
GFF, это несложно просто указатели перезаписывать надо в переменные.
GFF
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 4
28.04.2013, 19:09  [ТС]     Удалить из списка неупорядоченные подсписки #5
MCKLAS, у меня никак не получается с удалением элементов. Могли бы Вы написать еще и этот момент?
Yandex
Объявления
28.04.2013, 19:09     Удалить из списка неупорядоченные подсписки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru