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

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

Войти
Регистрация
Восстановить пароль
 
Mr. Armour
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 3
#1

Два двусвязных списка - C++

08.06.2012, 16:44. Просмотров 404. Ответов 4
Метки нет (Все метки)

Здравствуйте. Подайте хотя бы идею на задание:
Даны два двусвязных списка. Сформировать новый двусвязный список из элементов, входящих одновременно в оба исходных списка.
Благодарю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2012, 16:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Два двусвязных списка (C++):

Написать функцию, которая из списка образует два новых списка. Один содержит нечетные числа, а второй - парные - C++
Помогите закончить одно из заданий по работе со списком: Написать функцию, которая использует первоначальный список L и образует два...

Реализовать алгоритм поиска двусвязных компонент - C++
Помогите реализовать данный алгоритм, а то после прочтения теории здесь: http://hci.fenster.name/304y/practice/lab8/ и здесь:...

Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в у - C++
Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в...

Список преобразовать в два списка - C++
Всем привет! Помогите список преобразовать в два списка. Первый должен содержать только положительные числа, а второй – только...

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

Записи в файле прочесть в два списка - C++
есть текстовый файл запись1 запись2 запись3 запись4 ...................... надо первую колонку записать в один vector, а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
08.06.2012, 17:17 #2
Самый топорный метод.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <algorithm>
#include <iterator>
#include <list>
#include <set>
 
using namespace std;
 
template <typename T>
list<T> Func(const list<T>& l1, const list<T>& l2) {
    set<T> s;
    set_intersection(l1.begin(), l1.end(), l2.begin(), l2.end(), insert_iterator< set<T> >(s, s.end()));
    return list<T>(s.begin(), s.end());
}
1
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
08.06.2012, 17:22 #3
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
#include <iostream> 
#include <list> 
#include <algorithm> 
using namespace  std; 
int main() 
{ 
    list<int> ilist;  // первый список 
    list<int> ilist2; // второй список
 
 
    ilist.push_back(1); // заполняем элементами
    ilist.push_back(2);
    ilist.push_back(3);
    ilist.push_back(4); 
    
    ilist2.push_back(10);
    ilist2.push_back(11);
    ilist2.push_back(12);
    ilist2.push_back(13); 
 
    ilist.merge(ilist2); // объединяем
 
    int size = ilist.size(); // число элементов
 
    for ( int i = 0; i < size; i++) 
    { 
        cout << ilist.front() << endl; // читаем данные
        ilist.pop_front(); 
    } 
    cout << endl; 
    return 0; 
}
Можно сделать вот так
0
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
08.06.2012, 17:34 #4
David Sylva,
Цитата Сообщение от Mr. Armour Посмотреть сообщение
входящих одновременно в оба исходных списка.
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
08.06.2012, 17:50 #5
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
#include <iostream> 
#include <list> 
#include <algorithm> 
using namespace  std; 
int main() 
{ 
    list<int> ilist;  // первый список 
    list<int> ilist2; // второй список 
    list<int> ilist3; // пустой список
 
 
    ilist.push_back(1); // заполняем элементами
    ilist.push_back(2);
    ilist.push_back(3);
    ilist.push_back(4); 
    
    ilist2.push_back(10);
    ilist2.push_back(11);
    ilist2.push_back(12);
    ilist2.push_back(13); 
 
    ilist3.merge(ilist); // к пустому присоединякм первый
    ilist3.merge(ilist2);// присоединяем второй
 
    int size = ilist3.size(); // число элементов
 
    for ( int i = 0; i < size; i++) 
    { 
        cout << ilist3.front() << endl; // читаем данные
        ilist3.pop_front(); 
    } 
    cout << endl; 
    return 0; 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 17:50
Привет! Вот еще темы с ответами:

Два значения в одном элементе списка - C++
Подскажите как в сделать односвязный список, чтобы при добавление элемента добавлялись два значения?

Упорядочить два списка и произвести их слияние - C++
Нужно создать 2 списка L1 и L2. В списке числа упорядочить. Потом провести слияние списков и снова упорядочить конечный список.

Поменять два элемента односвязного списка - C++
Я где-то ошибся, и функция swap(smen2 -&gt; pNext, smen1 -&gt; pNext); в строке 123 ничего не меняет: #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Поменять местами два элемента двусвязного списка - C++
Доброго времени суток. Помогите пожалуйста с задачей. Необходимо реализовать функцию, которая меняет местами два элемента в двусвязном...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.06.2012, 17:50
Ответ Создать тему
Опции темы

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