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

Сформировать список L включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входит во второй из них - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо http://www.cyberforum.ru/cpp-beginners/thread543892.html
Помогите доделать задачу на С++ 1.Дан массив A. Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо на k позиций, где k – число положительных элементов. 2.Массивы, полученные в результате выполнения задания варианта А, отсортировать методом простого обмена, методом простой выборки и методом простой вставки. Методом бинарного поиска найти ...
C++ Найти минимальный и максимальный элемент в массиве найти минимальный и максимальный элемент в массиве скажите где ошибка в данном скрипте использую dev c++ #include <iostream.h> #include <windows.h> #include <math.h> int main() http://www.cyberforum.ru/cpp-beginners/thread543887.html
min-gw try-catch почемуто не работает C++
Немогу понять почему не обрабатывается исключение, код приведен ниже. #include <cstdlib> #include <iostream> #include <windows.h> #include <stdexcept> using namespace std; int main() { int i ,j,k; try
Перебор возможных значений для трёх чисел C++
Доброго времени суток. Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01 0,01 0,98 . Заранее благодарен за помощь
C++ Вычислить сумму элементов матрицы в заштрихованной области http://www.cyberforum.ru/cpp-beginners/thread543857.html
Здравствуйте. У меня возникла проблема с программой. Я написал параграмму. Вот что получилось. #include <iostream> using namespace std; int main() { int n; int a; cout << "n = "; cin >> n;
C++ Операторы цикла и передачи управления Получить таблицу пересчета миль в километры и обратно (1 миля = 1,609344 км) для расстояний, не превышающих k км, в следующем виде: МИЛИ КМ 0,6214 1,0000 1,0000 1,6093 подробнее

Показать сообщение отдельно
inek
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 11
09.04.2012, 23:05     Сформировать список L включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входит во второй из них
Добрый вечер! Помогите, пожалуйста, начинающей программистке решить следующую задачу:
Разработать шаблон класса для работы с однонаправленным некольцевым списком. Реализовать следующие действия:
-добавление звена в начало списка;
-удаление звена из начала списка;
-добавление звена в произвольное место списка, отличное от начала (например, после звена, указатель на которое задан);
-удаление звена из произвольного места списка, отличного от начала (например, после звена, указатель на которое задан);
-проверка, пуст ли список;
-очистка списка;
-формирование списка;
-печать списка.
Составить программу, которая формирует список L включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входит в другой из них.

Все действия реализовала, а вот как составить метод формирования списка L не могу сообразить. Вот шаблон, разработанный мной:
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
#include <iostream>
 
using namespace std;
 
template <typename T>
class List
{
    struct Node
    {
        T data;
        Node *next;
        Node(T d, Node *n = 0):data(d), next(n) {}
    };
    Node *head;
public:
    List(Node *h = 0):head(h){}
    ~List();
    bool isEmpty();
    void insertAfter(Node *pre, T d);
    void removeAfter(Node *pre);
    void pushFront(T d);
    T popFront();
    void print();
    Node *search(T d);
    void removeDuplicate();
    void create(int k);
};
 
template <typename T>
List<T>::~List()
{
    while (!isEmpty())
       popFront();
}
 
template <typename T>
bool List<T>::isEmpty() 
{
    return !head;
}
 
template <typename T>
void List<T>::insertAfter(Node *pre, T d) 
{ 
    if(!pre) return;
    Node *newNode = new Node(d,0);
    newNode->next = pre->next;
    pre->next = newNode;
}
 
template <typename T>
void List<T>::removeAfter(Node *pre)
{
    if (!pre || !pre->next) return;
    Node *tmp = pre->next; 
    pre->next = pre->next->next;
    delete tmp;
}
 
template <typename T>
void List<T>:: pushFront(T d)
{
    Node *newNode = new Node(d,0);
    if(!head) {
        head = newNode;
        return;
    }
    newNode->next = head;
    head = newNode;
}
 
template <typename T>
T List<T>:: popFront()
{
    T data;                 
    if(!head) return data;
    Node *tmp = head;
    data = head->data;
    if(head->next) {
        head = head->next;
        delete tmp;
        return data;
    }
    delete tmp;
    head = NULL;
    return data;
}
 
template <typename T>
typename List<T>::Node* List<T>::search(T d)
{
    if(!head) return NULL;
    Node* cur = head;
    while(cur) {
        if(cur->data == d) return cur;
        cur = cur->next;
    }
    return NULL;
}
 
 
template <typename T>
void List<T>:: print()
{
    if(!head) return;
    Node *cur  = head;
    while(cur) {
        cout << cur->data << "; ";
        cur = cur->next;
    }
    cout << endl;
}
 
template <typename T>
void List<T>::create(int k)
{
    T d;
    for (int i = 1; i <= k; i++)
    {
        cout << "Enter " << i << "-i element: ";
        cin >> d;
        pushFront(d);
        
    }
}
Работаю в DEV C++ (так требует препод).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru