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

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

Восстановить пароль Регистрация
 
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
12.06.2013, 20:59     Реализовать структуру данных стек, содержащую следующие методы: #1
Реализовать структуру данных стек, содержащую следующие методы: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека, считать стек из стандартного потока, записать стек до потока стандартного.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 20:59     Реализовать структуру данных стек, содержащую следующие методы:
Посмотрите здесь:

C++ Описать структуру Note, содержащую следующие поля:
C++ Описать структуру с именем TRAIN, содержащую следующие поля
Опистать структуру с именем PRICE, содержащую следующие параметры C++
C++ Описать структуру с именем AEROFLOT, содержащую следующие поля:
C++ Описать структуру с именем ., содержащую следующие поля
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
13.06.2013, 18:01     Реализовать структуру данных стек, содержащую следующие методы: #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
#include <iostream>
#include <stdexcept>
 
template<class T>
class TStack
{
   protected:
      struct TNode
      {
         T data;
         TNode* next;
      }* stack;
 
      TStack(const TStack&);
 
   public:
      TStack(): stack(NULL) { ; }
      ~TStack()
      {
         while (stack)
         {
            Pop();
         }
      }
 
      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;
      }
 
      size_t Size() const
      {
         size_t size = 0;
 
         for (const TNode* node = stack; node; node = node->next)
         {
            size++;
         }
 
         return size;
      }
 
      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;
 
   for (size_t i = 0; i < 5; ++i)
   {
      std::cout << "input " << i + 1 << " of 5: ";
      std::cin >> stack;
   }
 
   std::cout << stack << " : " << stack.Size() << std::endl;
 
   return 0;
}
Реализовать структуру данных стек, содержащую следующие методы:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.06.2013, 11:55     Реализовать структуру данных стек, содержащую следующие методы: #3
сделать пустым
пуст/не пуст
добавить элемент
взять элемент
прочитать/записать вершину
удалить вершину
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
15.06.2013, 23:49  [ТС]     Реализовать структуру данных стек, содержащую следующие методы: #4
accept,Пожалуйста Прошу сделать эти все просьбы!)
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
17.06.2013, 21:48  [ТС]     Реализовать структуру данных стек, содержащую следующие методы: #5
anmartex, Прошу тебя реализировать пожалуйста остальное добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека, считать стек из стандартного потока, записать стек до потока стандартного.

Добавлено через 1 минуту
anmartex, чтоб в консоле были задани все эти возможности тоисть чтоб например под 1) это добавить елемент в стэк 2) удалить елемент! ну типа того!
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
18.06.2013, 04:13     Реализовать структуру данных стек, содержащую следующие методы: #6
Цитата Сообщение от unikalen Посмотреть сообщение
anmartex, Прошу тебя реализировать пожалуйста остальное добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека, считать стек из стандартного потока, записать стек до потока стандартного.
Внимательно посмотрите на класс, это всё уже реализовано:
  1. Push - добавить элемент в стек;
  2. Pop - удалить элемент из стека;
  3. Top - получить значение с вершины стека;
  4. Size - размер стека;
  5. operator << - считать стек из стандартного потока;
  6. operator >> - записать стек до потока стандартного.
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
18.06.2013, 10:51  [ТС]     Реализовать структуру данных стек, содержащую следующие методы: #7
anmartex, сделай пожалуйста в консоле чтоб можна било задавать
1) это добавить елемент в стэк 2) удалить елемент 3)получить значение с вершины стека; 4)размер стека;
5)считать стек из стандартного потока; 6)записать стек до потока стандартного.
zer0mail
2187 / 1870 / 187
Регистрация: 03.07.2012
Сообщений: 6,650
Записей в блоге: 1
18.06.2013, 11:20     Реализовать структуру данных стек, содержащую следующие методы: #8
ТС хоть что-нибудь сам запрограммировать может? Или все задания будет делать через форум?
unikalen
-2 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 65
18.06.2013, 11:27  [ТС]     Реализовать структуру данных стек, содержащую следующие методы: #9
zer0mail, могу! но мне щас по этому именно ваша помощь нада!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 15:35     Реализовать структуру данных стек, содержащую следующие методы:
Еще ссылки по теме:

C++ Описать структуру с именем Note, содержащую следующие поля
Определить структуру с именем Price, содержащую следующие поля C++
C++ Описать структуру, содержащую следующие поля

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

Или воспользуйтесь поиском по форуму:
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
18.06.2013, 15:35     Реализовать структуру данных стек, содержащую следующие методы: #10
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;
}
Yandex
Объявления
18.06.2013, 15:35     Реализовать структуру данных стек, содержащую следующие методы:
Ответ Создать тему
Опции темы

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