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

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

Войти
Регистрация
Восстановить пароль
 
Vova_Sim
2 / 2 / 0
Регистрация: 07.11.2012
Сообщений: 50
#1

Удалить из списка s все элементы больше k - C++

29.04.2014, 22:09. Просмотров 190. Ответов 0
Метки нет (Все метки)

Функция
C++
1
void odn(iter *, iter *);
выполняет "Из списков s1 и s2 удалить все элементы с одинаковым содержимым.". Помоги сделать так что бы она выполняла следующее "Удалить из списка s все элементы с значением содержимого, превышающим заданное число k."
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
# include<iostream>
using namespace std;
class spisok
{
private:
    int x;
    spisok *prev;
    spisok *fr;
public:
    void first()
    {
        cout << "x = ";
        (cin >> x).get();
        fr = NULL;
        prev = NULL;
    }
    ~spisok()
    {
        cout << "Элемент был удален.\n";
    }
    void push(spisok *);//Функция вставки элемента
    void put_el(spisok *);//Просмотр доступного элемента
    void prov(spisok *);//Проверка наличия елементов
    void per(spisok *);//Функция перехода в начало списка
};
void spisok::push(spisok *P)
{
    while (P->prev != NULL)
        P = P->prev;
    int a;
    cout << "x = ";
    (cin >> a).get();
    while (a>P->x)
    {
        cout << "\nЭлемент введен неверно.";
        cout << "x = ";
        cin.clear();
        (cin >> a).get();
    }
    spisok *ST = new spisok;
    ST->x = a;
    P->prev = ST;
    ST->fr = P;
    ST->prev = NULL;
}
void spisok::put_el(spisok *P)
{
    cout << "Доступный элемент:\n";
    cout << "x = " << P->x << endl;
}
void spisok::prov(spisok *P)
{
    if (P->prev = NULL) cout << "\nСписок содержит 1 элемент";
    else cout << "Список содержит более одного элемента\n";
}
void spisok::per(spisok *P)
{
    P = P->fr;
}
class iter:public spisok
{
private:
    int x;
    iter *prev;
public:
    void sled(iter *);//Функция перехода к следующиму элементу
    void tek(iter *);//функция выдачи текущего адреса
    iter* del(iter *);//Функция удаления элемента
    void odn(iter *, iter *);
};
iter* iter::del(iter *P)
{
    iter *ST = P->prev;
    delete P;
    return ST;
}
void iter::sled(iter *P)
{
    P = P->prev;
}
void iter::tek(iter *P)
{
    cout << "Адрес текущего элемента:" << P<<endl;
}
void iter::odn(iter *P, iter *D)
{
    iter *P1, *D1, *S;
    P1 = P; D1 = D;
    while (P1->prev != NULL)
    {
        while (D1->prev != NULL)
        {
            if (P1->x = D1->x) 
            {
                S = P1;
                if (P1->prev != NULL)P1 = P1->prev;
                delete S;
                S = D1;
                if (D1->prev != NULL) D1 = D1->prev;
                delete S;
            }
            else if (P1->prev != NULL) P1 = P1->prev;
        }
        if (D1->prev != NULL) D1 = D1->prev;
    }
}
void main()
{
    setlocale(LC_ALL, "RUS");
    cout << "Ввод первого элемента.\n";
    iter *P = new iter;
    P->first();
    cout << "Для добавления элемента списка введите 1\n"
        "Для удаления элемента списка введите 2\n"
        "Для просмотра доступного элемента списка введите 3\n"
        "Для перехода к следующиму элементу введите 4\n"
        "Для выдачи текущего адреса введите 5\n"
        "Для проверки наличия элементов списка введите 6\n";
    int a;
    cout << "Ввод: ";
    (cin >> a).get();
    while (a != 0)
    {
        switch (a)
        {
        case 1:P->push(P); break;
        case 2:P=P->del(P); break;
        case 3:P->put_el(P); break;
        case 4:P->prov(P); break;
        case 5:P->tek(P); break;
        case 6:P->sled(P); break;
        default: break;
        }
        cout << "Ввод: ";
        (cin >> a).get();
    }
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 22:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из списка s все элементы больше k (C++):

Удалить из списка элементы, которые больше 25 - C++
Определить среднее значение элементов списка со значениями меньше либо равными 15. Удалить из списка элементы, которые больше 25. ...

Удалить из списка все элементы с нечётными значениями и вывести указатель p2 на начало преобразованного списка. - C++
Здравствуйте. Не получается решить задачу. Условие. Дан непустой двусвязный список. Удалить из списка все элементы с нечётными ...

Удвоить вхождение каждого элемента списка. Элементы, входящие в список больше двух раз - удалить - C++
удвоить вхождение каждого элемента списка. Элементы, какие входят в список больше двух раз изъять(удалить)

Удалить из списка все отрицательные элементы - C++
Постановка задачи: Составить программу, которая удаляет из списка все отрицательные элементы люди умные спасите от провала в...

Удалить из списка все элементы, заканчивающиеся на цифру 2 - C++
Удалить из списка все элементы, заканчивающиеся на цифру 2 Вот структура если что: typedef struct SNum{ ...

Удалить из списка все элементы, заканчивающиеся на цифру 2 - C++
Работа с двунаправленными списками. Вот структура: typedef struct SNum{ int num; /* поле для числа */ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2014, 22:09
Привет! Вот еще темы с ответами:

Удалить из списка все элементы с четными информационными полями - C++
Добрый день. Помогите с заданиями, вообще не пойму как их делать, а их срочно нужно сделать: 1) однонаправленый список: Тип...

Если все элементы «двусвязного списка» отрицательны, то удалить элемент «стека» - C++
помогите,пожалуйста... -Если все элементы «двусвязного списка» отрицательны, то удалить элемент «стека». Результат проверить.

Удалить из списка целых чисел все парные элементы, посчитав их количество - C++
Создать список целых чисел.Удалить из него все парные елементы посчитав их количество

Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные - C++
Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные. начал писать код,но...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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