Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо http://www.cyberforum.ru/cpp-beginners/thread543892.html
Помогите доделать задачу на С++ 1.Дан массив A. Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо на k позиций, где k – число положительных...
Найти минимальный и максимальный элемент в массиве C++
найти минимальный и максимальный элемент в массиве скажите где ошибка в данном скрипте использую dev c++ #include <iostream.h> #include <windows.h> #include <math.h> int main()
min-gw try-catch почемуто не работает C++
Немогу понять почему не обрабатывается исключение, код приведен ниже. #include <cstdlib> #include <iostream> #include <windows.h> #include <stdexcept> using namespace std; int main() { int...
C++ Перебор возможных значений для трёх чисел Доброго времени суток. Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01 0,01 0,98 . Заранее благодарен за помощь http://www.cyberforum.ru/cpp-beginners/thread543863.html
C++ Вычислить сумму элементов матрицы в заштрихованной области http://www.cyberforum.ru/cpp-beginners/thread543857.html
Здравствуйте. У меня возникла проблема с программой. Я написал параграмму. Вот что получилось. #include <iostream> using namespace std; int main() { int n; int a; cout << "n = "; ...
C++ Операторы цикла и передачи управления
Получить таблицу пересчета миль в километры и обратно (1 миля = 1,609344 км) для расстояний, не превышающих k км, в следующем виде: МИЛИ КМ 0,6214 1,0000 1,0000 1,6093
C++ Отредактировать предложение, удаляя из него лишние пробелы
отредактировать предложение ,удаляя из него лишние пробелы,оставляя только по одному пробелу между словами. в заданном предложении указать слово,в котором доля согласных минимальна.... Добавлено...
C++ Переделать код программы так, чтобы решалась через указатели и функцию #include <stdio.h> #include <conio.h> void main() { char st; int i; printf("\nEnter the string"); printf("->"); gets(st); i = 0; http://www.cyberforum.ru/cpp-beginners/thread543841.html
C++ работа со строками, мусор в конце строки http://www.cyberforum.ru/cpp-beginners/thread543838.html
если можете, объясните вкратце (я не нашел ответа в справочнике) почему у меня при работе со строками (посимвольном копировании из 1 в другую), при выводе второй возникают лишние символы в конце... ...
C++ Векторы в с++ Привет мостера помогите решить задания. Реализовать структуру данных вектор, содержащий следующие методы: добавить элемент к вектору, исключить элемент из вектора, получить и... http://www.cyberforum.ru/cpp-beginners/thread543835.html
inek
0 / 0 / 1
Регистрация: 09.04.2012
Сообщений: 11
0

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

09.04.2012, 23:05. Просмотров 2243. Ответов 2
Метки (Все метки)

Добрый вечер! Помогите, пожалуйста, начинающей программистке решить следующую задачу:
Разработать шаблон класса для работы с однонаправленным некольцевым списком. Реализовать следующие действия:
-добавление звена в начало списка;
-удаление звена из начала списка;
-добавление звена в произвольное место списка, отличное от начала (например, после звена, указатель на которое задан);
-удаление звена из произвольного места списка, отличного от начала (например, после звена, указатель на которое задан);
-проверка, пуст ли список;
-очистка списка;
-формирование списка;
-печать списка.
Составить программу, которая формирует список 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++ (так требует препод).

Вернуться к обсуждению:
Сформировать список L включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входит во второй из них
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 23:05
Готовые ответы и решения:

Сформировать список l, включив в него по одному разу элементы, которые входят. В один из списков l1 или l2. Но не входят в другой
Добрый вечер! Собственно суть задачи такова: Я не совсем поняла списки, вы не могли бы помочь...

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
Ребят я запутался окончательно.Пытался сам разобраться,но увы только все хуже стало. задание:...

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. Ошибка
Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба...

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

Создать список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2
Описать процедуру, которая формирует список L, включив в него по одному разу элементы, которые ...

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