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

Двусвязный список: вставка, удаление, просмотр - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, какая буква ("С" или "Н") встречается в предложении реже http://www.cyberforum.ru/cpp-beginners/thread1166263.html
2) Составьте программу, определяющую, какая буква "С" или "Н" встречается в предложении реже.
C++ Определить, на какую букву начинается предпоследнее слово в предложении 1) Составьте программу, определяющую, на какую букву начинается предпоследнее слово в предложении. http://www.cyberforum.ru/cpp-beginners/thread1166262.html
Удалить строку и столбец, содержащие минимальный элемент матрицы A(N,N) C++
Составьте программу удаления строки и столбца, содержащего минимальный элемент матрицы A(N,N).
C++ Нужен алгоритм оптимизации стрельбы по движущейся мишени
Целый сижу, не могу додуматься. Не могли бы вы, уважаемые форумчане, мне помочь. В чем суть проблемы. Пишу игру. В ней присутствуют башни. Каждую башню окружает эллипс. Когда танчик попадает в данный эллипс, башня начинает стрелять. Так вот у меня получается лишь элементарная стрельба, то есть рисования линии от центра башни к центру танка. Но хочется немного другого. Чтобы когда танк попадает в...
C++ Работа с файлами. Срабатывание остановки по условию http://www.cyberforum.ru/cpp-beginners/thread1166251.html
После выполнения { cout << "Введите путь к файлу чтения: "; char* path = new char(100); cin >> path; ifstream in(path); while (in.fail()) //Если файл не считан { cout << "Ошибка открытия файла\
C++ Вычислить среднее арифметическое каждой строки матрицы, и записать найденные значения в побочную диагональ матрицы Составьте программу вычисления среднего арифметического каждой строки матрицы B(N,N) и запишите данные значения в побочную диагональ данной матрицы. подробнее

Показать сообщение отдельно
Владислаучык
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 288
07.05.2014, 00:18  [ТС]     Двусвязный список: вставка, удаление, просмотр
Melg, по задания надо свой реализовать, и пользоваться им с помощью итератора.

Добавлено через 1 минуту
Придумайте и реализуйте дважды связанный список, которым можно пользоваться посредством итератора. Итератор иметь действия для движения вперед и назад, действия для вставки и удаления элементов списка, и способ доступа к текущему элементу.

Добавлено через 2 минуты
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
126
127
128
129
130
131
132
133
134
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector>
#include <list>
#include <locale.h>
#include <iterator>
#include <stack>
 
struct Node       //Структура являющаяся звеном списка
 {
     int x;     //Значение x будет передаваться в список
     Node *Next,*Prev; //Указатели на адреса следующего и предыдущего элементов списка
 };
 
 class List   
 {
     Node *Head,*Tail, *cur;
     Node *Next,*Prev;//Указатели на адреса начала списка и его конца
 public:
     List():Head(NULL),Tail(NULL){}; //Инициализируем адреса как пустые
     ~List(); 
     void Show(); 
     void Delete_end();
     void empty() {if (Head == NULL) cout<<"Список пуст"<<endl; else cout<<"Список не пуст"<<endl;}
     void Delete_first();
     void Add(); 
 };
 
 class iterator : public List
 {
     friend Node;
 public:
     iterator(){};
     iterator& operator++()
     {
         Node*temp;
        // Node=Node->Next;
         return *this;
     }
 };
 
List::~List() 
 {   
     while (Head) //Пока по адресу на начало списка что-то есть
     {
         Tail=Head->Next; //Резервная копия адреса следующего звена списка
         delete Head; //Очистка памяти от первого звена
         Head=Tail; //Смена адреса начала на адрес следующего элемента
     }
 }
 
void List::Delete_first()
{
 
}
 
void List::Delete_end()
{
    Node *temp;
    Node *current=Tail;
    current=Head;
    temp=Head->Next;
    delete current;
    Head=temp;
    temp->Prev=NULL;
}
 
 void List::Add()
 {
     int x=0;
     cout<<"Введите элемент списка: ";
     cin>>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");
 setlocale(LC_ALL,"Russian");
 List lst; 
 lst.empty();
 lst.Add(); 
 lst.empty();
 lst.Add();
 lst.Add();
 lst.empty();
 lst.Add();
  lst.Delete_first();
 lst.Delete_end();
 lst.Show(); 
 lst.Delete_end();
 lst.Add();
 lst.Delete_first();
 lst.Show();
  system("PAUSE");
}
 
Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru