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

Контейнеры и итераторы (двунаправленный список) - C++

Восстановить пароль Регистрация
 
Shokoladnaj
2 / 2 / 1
Регистрация: 11.03.2014
Сообщений: 84
22.04.2014, 00:44     Контейнеры и итераторы (двунаправленный список) #1
Задание: Придумайте и реализуйте дважды связанный список, которым можно пользоваться посредством итератора. Итератор иметь действия для движения вперед и назад, действия для вcтавки и удаления элементов списка, и способ доступа к текущему элементу. должен быть класс-контейнер, класс-итератор, (+ класс алгоритмов)

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
#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
class Iterator;
 
struct Node      
 {
     int x;    
     Node *Next,*Prev; 
 };
 
class Iterator
{
    Node *ptr;
public:
    friend class List;
    Iterator();
    Iterator(Node*p);
    Iterator &operator++()
    {
        ptr=ptr->Next;
        return *this;
    }
    Iterator &operator--()
    {
        ptr=ptr->Prev;
        return *this;
    }
    void _push();
    void _del();
    void _access();
};
 
 
 class List  
 {
      Node *Head,*Tail; 
 public:
     friend class Iterator;
     List():Head(NULL),Tail(NULL){}; 
     ~List(); 
     void Show(); 
     void Add(int x); 
 };
 
 
List::~List() 
 {   
     while (Head) 
     {
         Tail=Head->Next; 
         delete Head; 
         Head=Tail;
     }
 }
 
 void List::Add(int x)
 {
   Node *temp=new Node; 
   temp->Next=NULL; 
   temp->x=x;
 
   if (Head!=NULL)
   {
       temp->Prev=Tail; 
       Tail->Next=temp; 
       Tail=temp; 
   }
   else 
   {
       temp->Prev=NULL; 
       Head=Tail=temp; 
   }
 }
 
 void List::Show()
 {
     Node *temp=Tail;
     
     while (temp!=NULL) 
     {
     cout<<temp->x<<" "; 
     temp=temp->Prev; 
     }
     cout<<"\n";
     temp=Head; 
      while (temp!=NULL) 
     {
     cout<<temp->x<<" "; 
     temp=temp->Next; 
     }
     cout<<"\n";
 }
 
int main ()
{
 system("CLS");
 List lst; 
 list<List>l;
 lst.Add(100); 
 lst.Show(); 
  system("PAUSE");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 00:44     Контейнеры и итераторы (двунаправленный список)
Посмотрите здесь:

Двунаправленный список C++
Двунаправленный список C++
Двунаправленный список C++
C++ Контейнеры и итераторы
Двусвязный список контейнеры и итераторы C++
C++ Двухсвязанный список и итераторы
C++ STL. Итераторы и последовательные контейнеры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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