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

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

Восстановить пароль Регистрация
 
Mr. Armour
0 / 0 / 0
Регистрация: 13.03.2012
Сообщений: 3
08.06.2012, 16:44     Два двусвязных списка #1
Здравствуйте. Подайте хотя бы идею на задание:
Даны два двусвязных списка. Сформировать новый двусвязный список из элементов, входящих одновременно в оба исходных списка.
Благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2012, 16:44     Два двусвязных списка
Посмотрите здесь:

C++ Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в у
C++ записи в файле записать в два списка
C++ Поменять местами два элемента двусвязного списка
C++ Реализовать алгоритм поиска двусвязных компонент
Написать программу, которая формирует два списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 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());
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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; 
}
Можно сделать вот так
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
08.06.2012, 17:34     Два двусвязных списка #4
David Sylva,
Цитата Сообщение от Mr. Armour Посмотреть сообщение
входящих одновременно в оба исходных списка.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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; 
}
Yandex
Объявления
08.06.2012, 17:50     Два двусвязных списка
Ответ Создать тему
Опции темы

Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru