Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
milishyn
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 32
#1

Как из двух однонаправленных списков создать третий, который состоит из нечетных элементов предыдущих двух?

13.03.2017, 21:01. Просмотров 296. Ответов 6
Метки нет (Все метки)

ребят,подскажите пожалуйста как из двух однонаправленных списка создать третий который состоит из нечетных елементов преведущих двух. Остановился на том,что создал два однонапрямленных списка.
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
#include<iostream>
#include<conio.h>
#include<clocale>
using namespace std;
struct elem
{
    int data;
    elem *next;
};
class spisok
{
private:
    elem *first;
public:
    spisok()
  {
      first=NULL;
  }
  void add(int d);
  void display();
};
void spisok::add(int d)
{
    elem *newelem=new elem;
    newelem->data=d;
    newelem->next=first;
    first=newelem;
}
void spisok::display()
{
    elem *n=first;
    while(n)
    {
        cout<<n->data<<endl;
        n=n->next;
    }
}
int main()
{
 
    cout<<"spisok 1\n";
    spisok a;
    a.add(1);
    a.add(2);
    a.add(3);
    a.display();
    cout<<"spisok 2\n";
    spisok b;
    b.add(4);
    b.add(5);
    b.add(6);
    b.display();
    cout<<"spisok 3\n";
    spisok c;
 
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2017, 21:01
Ответы с готовыми решениями:

Сравнение элементов двух однонаправленных линейных списков
А как сравнить элементы двух списков? Чтобы при совпадении элементов счётчик...

Создать третий массив, в котором собрать элементы двух предыдущих
Есть два одномерных динамических массива: А и B. Необходимо создать третий...

Из двух однонаправленных списков сформировать новый список
Из двух однонаправленных списков сформировать новый список, следующим образом:...

Реализация алгоритма Рабина-Карпа для двух однонаправленных линейных списков
Здравствуйте! Собственно, вопрос находится в заголовке: у меня описано два...

В массиве каждый третий элемент заменить полусуммой двух предыдущих (с использованием указателей)
Заранее большое спасибо.(написать программу с использованием указателей)

6
Nishen
458 / 281 / 154
Регистрация: 26.02.2015
Сообщений: 1,329
Завершенные тесты: 2
13.03.2017, 21:41 #2
List.h
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
#pragma once
 
#include <iostream>
 
template <class T>
struct Node {
 
    T data;
    Node<T>* next;
 
};
 
template <class T>
class List {
 
    public:
        List();
        ~List();
 
        void push(const T& value);
        void display() const;
 
        template <class T>
        friend void newOddList(List<T>& result, const List<T>& firstList, const List<T>& secondList);
 
    private:
        Node<T>* first;
 
};
 
template <class T>
void newOddList(List<T>& result, const List<T>& firstList, const List<T>& secondList) {
 
    Node<T>* current = firstList.first;
 
    while (current) {
 
        if (current->data % 2 != 0) {
 
            result.push(current->data);
 
        }
 
        current = current->next;
 
    }
 
    current = secondList.first;
 
    while (current) {
 
        if (current->data % 2 != 0) {
 
            result.push(current->data);
 
        }
 
        current = current->next;
 
    }
 
}
 
template <class T>
List<T>::List() : first(nullptr) {
 
    //TODO
 
}
 
template <class T>
List<T>::~List() {
 
    Node<T>* current;
 
    while (first) {
 
        current = first->next;
 
        delete first;
 
        first = current;
 
    }
 
}
 
template <class T>
void List<T>::push(const T& value) {
 
    Node<T>* newNode = new Node<T>;
 
    newNode->data = value;
    newNode->next = first;
 
    first = newNode;
 
}
 
template <class T>
void List<T>::display() const {
 
    Node<T>* current = first;
 
    while (current) {
 
        std::cout
            << current->data
            << " ";
 
        current = current->next;
 
    }
 
}


main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "List.h"
 
int main() {
 
    List<int> firstList;
    List<int> secondList;
    List<int> result;
 
    firstList.push(1);
    firstList.push(2);
 
    secondList.push(1);
    secondList.push(2);
 
    newOddList(result, firstList, secondList);
 
    result.display();
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
0
milishyn
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 32
13.03.2017, 21:54  [ТС] #3
выбивает ошибку:nullptr was not declared in this scope
0
Nishen
458 / 281 / 154
Регистрация: 26.02.2015
Сообщений: 1,329
Завершенные тесты: 2
13.03.2017, 21:57 #4
Замените в конструкторе nullptr на NULL.
0
milishyn
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 32
13.03.2017, 22:00  [ТС] #5
list.h no such file or directory,подскажите пожалуста как устранить
0
Nishen
458 / 281 / 154
Регистрация: 26.02.2015
Сообщений: 1,329
Завершенные тесты: 2
13.03.2017, 22:36 #6
Цитата Сообщение от milishyn Посмотреть сообщение
list.h no such file or directory,подскажите пожалуста как устранить
Создать этот файл с определением класса и его элементов. Ну-у-у, если не знаете, что это, то попробуйте всё, что я Вам дал, написать в один файл и убрать строку
C++
1
#inclued "List.h"
Добавлено через 30 минут
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
#include <list>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <ctime>
 
int main() {
 
    srand(time(NULL));
 
    size_t countElements = 10;
 
    std::list<int> firstList;
    std::list<int> secondList;
 
    for (size_t i = 0; i < countElements; i++) {
 
        firstList.push_back(rand() % 101 - 50);
        secondList.push_back(rand() % 101 - 50);
 
    }
 
    std::list<int> result;
 
    result.splice(result.begin(), firstList);
    result.splice(result.end(), secondList);
 
    result.remove_if([](int i) { return !(i % 2); });
 
    std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, " "));
 
    std::system("PAUSE");
    return EXIT_SUCCESS;
 
}
0
milishyn
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 32
19.03.2017, 01:53  [ТС] #7
подскажите пожалуста, в какой среде нужно компилировать чтобы код работал
0
19.03.2017, 01:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2017, 01:53

Создать третий массив из элементов двух данных
Подскажите, пожалуйста, как сформировать массив С между А и В #include...

Как из двух массивов создать третий?
Допустим дан массив А и B, как создать массив С???

создать массив который состоит из милион элементов
Можно ли в С++ создать массив который состоит из милион элементов. И если можно...


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

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

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