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

Инвертировать стэк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование файлов и строк http://www.cyberforum.ru/cpp-beginners/thread31009.html
Уважаемые программисты! Нужна ваша помощь, заканчиваю написание диплома и возникла следующая проблемка: Есть программа, которая все результаты записывает в файл txt. Этот файл имеет следующий...
C++ Задача на квадратную матрицу Дана целочисленная квадратная матрица. Определить: 1) Сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) Минимум среди сумм модулей элементов диагоналей, паралельных... http://www.cyberforum.ru/cpp-beginners/thread31000.html
Интересные задачи для новичков. C++
Подскажите,пожалуйсто,где можно найти список интересных или олимпиадных(школьных) задач. Заранее благодарен.
Как работать с функцией rand() C++
Помогите сделать так, чтобы rand() каждый раз выкидывал неповторяющиеся значения.
C++ Шары и коробки http://www.cyberforum.ru/cpp-beginners/thread30970.html
Шары и коробки (Время: 1 сек. Память: 16 Мб Сложность: 52%) У вас имеется N выстроенных в ряд коробок, A красных и B синих шаров. Все красные шары (аналогично и синие) идентичны. Вы можете класть...
C++ Матрица из одномерного массива Здравствуйте форумчане! Нужна небольшая помощь по задачке в С. Нужно из одномерного массива из м^2 элементов построить матрицу размером м*м. Массив я заполнил, а как построить из него матрицу, не... подробнее

Показать сообщение отдельно
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
22.04.2009, 00:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Stack
{
   private:
     int *stack; //  указатель на динамический массив создаваемый в конструкторе
     int top; // индекс вершины стека
   public:
    Stack(int n): top(0) {stack = new int[n];} //конструктор создаваемый стек величинной n.. и обнуляем перменную top (т.е. при создании класса, top = 0)
 
    ~Stack() {delete[] stack;} // удаляем стек
    void push(int data) {stack[top++] = data;}
    int pop() {return stack[top--];}
};
Добавлено через 42 секунды
создается стек так:

C++
1
Stack st(5); // из пяти элементов
Добавлено через 3 минуты 7 секунд
Т.е. как я понял, в твоей задаче, следует написать что-то вроде этого:

C++
1
2
3
4
5
6
Stack stack1(10);
Stack stack2(10);
 
// инвертация для случая если стек полон.. (т.е. заняты все элементы)
for (int i=0; i<10; i++)
stack2.push(stack1.pop());
Добавлено через 9 минут 28 секунд
а еще лучше сделать так:

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
#include <iostream>
using namespace std;
 
class Stack
{
   private:
     int *stack;
     int top;
   public:
     Stack(): top(0) { stack = new int[5]; }
     Stack(int n): top(0) { stack = new int[n]; }
     ~Stack() { delete[] stack; }
 
     void push(int data) { stack[top++] = data; }
     int pop() { return stack[top--]; }
 
     int gettop() { return top; }
};
 
 
int main()
{
    Stack stack1(10);
    Stack stack2(10);
 
    for (int i=0; i<=stack1.gettop(); i++)
        stack2.push(stack1.pop());
 
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru