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

Реализовать структуру данных стек, содержащую следующие методы: - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дано число А. Найдите 5 простых чисел которые больше А. http://www.cyberforum.ru/cpp-beginners/thread899932.html
Дано число А. Найдите 5 простых чисел которые больше А.(с помощью цикла с пред условием)
C++ Отыскать среднее арифметическое с модулей обчисленних значений функции: Нужно отискать среднее арифметичное с модулей обчисленних значений функции: http://www.cyberforum.ru/cpp-beginners/thread899929.html
Задваивается ожидание ввода в поле структуры C++
Прата. 7 глава. 9е задание В функции getinfo(43 строка) при вводе почему-то вместо однократного ввода значения в поле, он ожидает ввод во второй раз. #include <iostream> using namespace std; const int SLEN = 30; struct student
C++ В заданном двоичном коде заменить все цифры "0" на "1" и наоборот
составить алгоритм который в заданном двоичном коде заменяет все цифры "0" на "1" и наоборот
C++ Среди чисел массива, встречающихся минимальное число раз, найти максимальное http://www.cyberforum.ru/cpp-beginners/thread899924.html
Дан массив А из N элементов (0<N<1000;0<A<10000). Среди чисел массива, встречающихся минимальное число раз, найти максимальное. Помогите, пожалуйста составить программу.
C++ Составить алгоритм меняющий местами четные и нечетные по порядку слова в тексте составить алгоритм меняющий местами четные и нечетные по порядку слова в тексте подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
18.06.2013, 15:35     Реализовать структуру данных стек, содержащую следующие методы:
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#include <iostream>
#include <string>
#include <stdexcept>
 
template<class T>
class TStack
{
   protected:
      struct TNode
      {
         T data;
         TNode* next;
      }* stack;
 
      TStack(const TStack&);
 
   public:
      TStack(): stack(NULL) { ; }
      ~TStack()
      {
         Clear();
      }
 
      TStack& Push(T data)
      {
         TNode* node = new TNode;
         node->data = data;
         node->next = stack;
         stack = node;
 
         return *this;
      }
 
      TStack& Pop() throw(std::range_error)
      {
         if (stack == NULL)
         {
            throw std::range_error("stack is empty");
         }
 
         TNode* node = stack;
         stack = stack->next;
         delete node;
 
         return *this;
      }
 
      T& Top() throw(std::range_error)
      {
         if (stack == NULL)
         {
            throw std::range_error("stack is empty");
         }
         return stack->data;
      }
 
      void Clear()
      {
         while (!IsEmpty())
         {
            Pop();
         }
      }
 
      size_t Size() const
      {
         size_t size = 0;
 
         for (const TNode* node = stack; node; node = node->next)
         {
            size++;
         }
 
         return size;
      }
 
      bool IsEmpty() const
      {
         return (stack == NULL);
      }
 
      friend std::ostream& operator << (std::ostream& os, const TStack<T>& stack)
      {
         const TNode* node = stack.stack;
 
         for (; node; node = node->next)
         {
            os << node->data << ", ";
         }
         os << "\b\b \b";
         return os;
      }
 
      friend std::istream& operator >> (std::istream& is, TStack<T>& stack)
      {
         T data;
 
         is >> data;
 
         stack.Push(data);
 
         return is;
      }
};
 
int main()
{
   TStack<int> stack;
 
   std::cout << "stack operations:" << std::endl
             << "1. push" << std::endl
             << "2. pop" << std::endl
             << "3. top" << std::endl
             << "4. size" << std::endl
             << "5. view" << std::endl;
 
   bool quit = false;
   std::string command;
 
   while (!quit)
   {
      std::cout << ": ";
      std::cin >> command;
 
      switch (command[0])
      {
         case '1':
            std::cout << "element: ";
            std::cin >> stack;
            break;
 
         case '2':
            try
            {
               stack.Pop();
               std::cout << "element removed" << std::endl;
            }
            catch (const std::range_error& error)
            {
               std::cerr << error.what() << std::endl;
            }
            break;
 
         case '3':
            try
            {
               std::cout << "top: " << stack.Top() << std::endl;
            }
            catch (const std::range_error& error)
            {
               std::cerr << error.what() << std::endl;
            }
            break;
 
         case '4':
            std::cout << "size: " << stack.Size() << std::endl;
            break;
 
         case '5':
            std::cout << "stack: " << stack << std::endl;
            break;
 
         default:
            quit = true;
      }
   }
 
   return 0;
}
 
Текущее время: 01:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru