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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на квадратную матрицу http://www.cyberforum.ru/cpp-beginners/thread31000.html
Дана целочисленная квадратная матрица. Определить: 1) Сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) Минимум среди сумм модулей элементов диагоналей, паралельных побочной диагонале матрици)
C++ Интересные задачи для новичков. Подскажите,пожалуйсто,где можно найти список интересных или олимпиадных(школьных) задач. Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread30981.html
Как работать с функцией rand() C++
Помогите сделать так, чтобы rand() каждый раз выкидывал неповторяющиеся значения.
C++ Шары и коробки
Шары и коробки (Время: 1 сек. Память: 16 Мб Сложность: 52%) У вас имеется N выстроенных в ряд коробок, A красных и B синих шаров. Все красные шары (аналогично и синие) идентичны. Вы можете класть шары в коробки. Разрешается размещать в коробках шары как одного, так и двух видов одновременно. Так же разрешается оставлять некоторые из коробок пустыми. Не обязательно класть все шары в коробки. ...
C++ Матрица из одномерного массива http://www.cyberforum.ru/cpp-beginners/thread30961.html
Здравствуйте форумчане! Нужна небольшая помощь по задачке в С. Нужно из одномерного массива из м^2 элементов построить матрицу размером м*м. Массив я заполнил, а как построить из него матрицу, не знаю. Помогите пожалуйста! #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <time.h> void main () { int mas,i;
C++ вопрос новичка по Visual C++ пишу в данный раздел а не в Visual C++, поскольку только начал его изучение, и потому наверняка задача решается просто. Суть проблемы: согласно учебнику С.Холзнер "Учебный курс Visueal C++ 6" описан процесс создания курсора в клиентской области окна, и последовательное перемещение его, по мере ввода символов. Компилируется без ошибок, введенный текст отображается, однако каретка не... подробнее

Показать сообщение отдельно
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 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;
}
 
Текущее время: 18:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru