Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
gunslinger17
0 / 0 / 2
Регистрация: 25.02.2012
Сообщений: 80
1

Удалить из списка L за каждым вхождением элемента Е один элемент

28.04.2012, 15:31. Просмотров 1208. Ответов 5
Метки нет (Все метки)

1) Составить программу, которая удаляет из списка L за каждым вхождением элемента Е один элемент, если таковой имеется и он отличен от Е.
2) Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2012, 15:31
Ответы с готовыми решениями:

Удалить из списка за каждым вхождением элемента e один элемент
Помогите пожалуйста решить задачу.заранее спасибо - Составить программу,...

Удалить из списка L за каждым вхождением элемента Е один элемент, если таковой имеется и он отличен от Е
помогите решить плз Составить программу, которая удаляет из списка L за каждым...

Описать процедуру и функцию которая, удаляет из списка L за каждым вхождением элемента Е один элем если такой есть, и он отличен от Е
помогите пожалуйста очень нужно я в С++ очень плохо разбираюсь

Динамические структуры данных. Сформировать динамический список, описать функцию, которая удаляет из списка за каждым вхождением элемента Е
Сформировать динамический список (стек или очередь), считая, что длина списка...

Удалить из списка элемент перед каждым элементом со значением 3
Удалить из списка элемент перед каждым элементом со значением 3. Добавлено...

5
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
28.04.2012, 17:15 2
где ваш список?
0
cyberdiem
74 / 25 / 2
Регистрация: 15.02.2012
Сообщений: 97
28.04.2012, 18:27 3
на плюсах пишешь? stl использовать разрешили?
0
gunslinger17
0 / 0 / 2
Регистрация: 25.02.2012
Сообщений: 80
28.04.2012, 18:52  [ТС] 4
Цитата Сообщение от cyberdiem Посмотреть сообщение
на плюсах пишешь? stl использовать разрешили?
Вообще на Си, компилятор С++.
Цитата Сообщение от panicwassano Посмотреть сообщение
где ваш список?
Список произвольно можно задать.
0
Algiz
161 / 161 / 22
Регистрация: 23.02.2011
Сообщений: 347
28.04.2012, 19:12 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1
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
#include <iostream>
#define forn(a,i,b) for(int i=a; i<b; i++)
 
using namespace std;
 
struct Node
{
    int a;
    Node* next;
};
 
void add(Node *&list, int a)
{
    Node* tmp = new Node;
    tmp -> a = a;
    tmp -> next = list;
    list = tmp;
}
 
void printList(Node* n)
{
    if (n == 0)
        cout << "end\n";
    else
    {
        cout << n -> a << ", ";
        printList(n -> next);
    }
}
 
void mkList(Node *&n)
{
    int qty;
    cin >> qty;
    int tmp;
    forn(0,i,qty)
    {
        cin >> tmp;
        add(n,tmp);
    }
}
 
void delList(Node* n)
{
    if (n == 0)
        return;
    delList(n -> next);
    delete n;
}
 
void delOne(Node*&,int);
void delNext(Node *&n, int el)
{
    if (n == 0)
        return;
    if (n -> a == el)
        delNext(n -> next,el);
    Node* tmp = n -> next;
    delete n;
    n = tmp;
    delOne(n,el);
}
 
void delOne(Node *&n, int el)
{
    if (n == 0)
        return;
    if (el == n -> a)
        delNext(n -> next,el);
    else
        delOne(n -> next, el);
}
 
int main(int argc, char **argv)
{
    Node* l = 0;
    mkList(l);
    printList(l);
    int n;
    cin >> n;
    delOne(l,n);
    printList(l);
    delList(l);
    return 0;
}
Добавлено через 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
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
#include <iostream>
#define forn(a,i,b) for(int i=a; i<b; i++)
 
using namespace std;
 
struct Node
{
    int a;
    Node* next;
};
 
void add(Node *&list, int a)
{
    Node* tmp = new Node;
    tmp -> a = a;
    tmp -> next = list;
    list = tmp;
}
 
void printList(Node* n)
{
    if (n == 0)
        cout << "end\n";
    else
    {
        cout << n -> a << ", ";
        printList(n -> next);
    }
}
 
void mkList(Node *&n)
{
    int qty;
    cin >> qty;
    int tmp;
    forn(0,i,qty)
    {
        cin >> tmp;
        add(n,tmp);
    }
}
 
void delList(Node* n)
{
    if (n == 0)
        return;
    delList(n -> next);
    delete n;
}
 
bool isAt(Node* n, int a)
{
    if (n == 0)
        return 0;
    return (n -> a == a)? 1: isAt(n -> next, a);
}
 
Node* mkRes(Node* l1, Node* l2)
{
    if (l1 == 0)
        return 0;
    if (isAt(l1 -> next, l1 -> a) || isAt(l2,l1 -> a))
        return mkRes(l1 -> next, l2);
    Node* tmp = new Node;
    tmp -> a = l1 -> a;
    tmp -> next = mkRes(l1 -> next, l2);
    return tmp;
}
 
int main(int argc, char **argv)
{
    Node* l1 = 0;
    Node* l2 = 0;
    mkList(l1);
    printList(l1);
    mkList(l2);
    printList(l2);
    Node* lres = mkRes(l1,l2);
    printList(lres);
    delList(l1);
    delList(l2);
    delList(lres);
    return 0;
}
1
gunslinger17
0 / 0 / 2
Регистрация: 25.02.2012
Сообщений: 80
28.04.2012, 19:17  [ТС] 6
Algiz, премного благодарен
Пошел разбираться
0
28.04.2012, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2012, 19:17

Вставить в список L за первым вхождением элемента Е все элементы списка L1
Помогите пожалуйста с заданием &quot;Вставить в список L за первым вхождением...

Удалить из списка элемент, стоящий после элемента на который указывает пользователь
Нужно удалить из списка элемент, стоящий после элемента на который указывает...

Поменять местами два элемента двусвязного списка и удалить из него указанный элемент
Дан двусвязный список. Требуется напечатать исходный список. Поменять местами...


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

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

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