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

Стек из списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Комментарии к коду http://www.cyberforum.ru/cpp-beginners/thread425997.html
Имеются ряд вопросов по коду. 1.Что нужно переделать ,для того чтобы добавить шаблоны? 2. Прокомментируйте пожалуйста код. Заранее благодарен.
C++ Вычислить произведение компонент вектора размером 5 Не могу выполнить Выяснить, в любой из строк матрицы размера 4x5 хотя бы один нулевой элемент. Воспользоваться функцией, которая вычисляет произведение компонент вектора размером 5. http://www.cyberforum.ru/cpp-beginners/thread425992.html
Многофайловые программы C++
Цитата: «В проэкты включаються только файлы исходного кода, а не заголовочные файлы. В интегрированных средах разработки программ не следует добавлять заголовочные файлы к списку проэкта (project list);нельзя также использовать директиву #include для включения одних файлов исходного кода в другие файлы исходного кода.» Как это практически реализовать, если надо включить в проэкт 2 файла...
C++ Удаление из строки s все последовательности трёх букв ABC
Только начал освоивать язык С и не могу выполнить задачу Нужно удалить из строки символов s все последователности трёх латинских букв ABC на языке С!
C++ Задача на С++. Алгоритмы библиотеки STL. http://www.cyberforum.ru/cpp-beginners/thread425988.html
Программа должна демонстрировать использование контейнерных классов для хранения встроенных типов данных. В программе выполнить следующее: 1. Создать объект-контейнер multimap и заполнить его данными типа int. 2. Просмотреть контейнер. 3. Изменить контейнер, удалив из него одни элементы и заменив другие. 4. Просмотреть контейнер, используя для доступа к его элементам итераторы. ...
C++ Множественное наследование Листинг: #include <iostream> using namespace std; class Person{private: string Fname,Sname,years;}; class Student{private: string group;}; class Tich:public Person{private: string Profession;}; class GradStudent:public Student,public Person,public Tich{}; int main(){} подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
11.01.2012, 09:26     Стек из списка
Цитата Сообщение от Basisd Посмотреть сообщение
Я лентяй, решил воспользоваться чужим кодом.
Могу заодно "обрадовать" -- этот код редкостная чушь.

Добавлено через 15 минут
Вот что-то поближе к правильному варианту.
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
#include <iostream>
#include <stdexcept>
 
struct Node {
  Node *next;
  int data;
  Node(Node *next_, int data_) : next(next_), data(data_) {}
};
 
class Stack {
 public:
  Stack() : top_(NULL) {}
  ~Stack() {
    while (!isEmpty()) pop(); // очистка стека
  }
  bool isEmpty() const { return top_ == NULL; }
  void push(int value) {
    Node *node = new Node(top_, value);
    top_ = node;
  } 
  int pop() {
    if (isEmpty())
      throw std::underflow_error("Stack underflow.");
    int result = top_->data;
    Node *nextNode = top_->next;
    delete top_;
    top_ = nextNode;
    return result;
  }
 private:
  Stack(const Stack&); // запрет копирования конструктором
  Stack &operator=(const Stack&); // запрет присваивания
  Node *top_; // вершина стека
};
 
// содержимое стека распечатывается рекурсивно
std::ostream &operator<<(std::ostream &stream, Stack &stack) {
  if (stack.isEmpty()) return stream; // если стек пуст, возвращается stream
  int value = stack.pop(); // число из вершины стека
  std::cout << value << " " << stack; // число помещается в поток и рекусривно
                                      // вызывается эта же функция
  stack.push(value); // число возвращается в стек
  return stream; // возвращается поток
}
 
int main(int argc, char *argv[]) {
  Stack a;
  for (int i = 0; i < 10; ++i)
    a.push(i);
  std::cout << a << std::endl;
}
 
Текущее время: 01:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru