С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузить операции в стеке и очереди - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Число трехбуквенных слов-палиндромов http://www.cyberforum.ru/cpp-beginners/thread294311.html
Написать программу, считывающую текстовый файл (TEST.txt) и выводящую на экран число трехбуквенных слов-палиндромов (например, "aga") в файле. Добавлено через 3 минуты Вот что я написал, но она...
C++ порівняльний аналіз методів сортування одномірних масивів Товарищи программисты...помогите, пожалуйста! у меня такое задание, кто сможет разобраться, сделать, помогите, бо сама я не очень понимаю, что нужно делать( Розробка програми для порівняльного... http://www.cyberforum.ru/cpp-beginners/thread294309.html
C++ FreeConsole
Здравствуйте господа програмисты!!! как отследить нажатие клавиши?допустим имеем вот это- #include<iostream> #include<windows.h> #include<conio.h> using namespace std; int main() { ...
C++ Определить кольцо с центром в начале координат, которое содержит все точки.
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить кольцо с центром в...
C++ Найти точные квадраты в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread294287.html
Нужно определить, есть ли среди элементов квадратной матрицы точные квадраты, а если есть - вывести на экран и указать их позицию в матрице. #include <iostream.h> #include <conio.h> #include...
C++ Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен. Дана последовательность действительных чисел a1, a2, ..., an. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен. подробнее

Показать сообщение отдельно
rooot
4 / 2 / 1
Регистрация: 20.04.2011
Сообщений: 9
12.05.2011, 23:30
Вот пример программы. Описывается в ней работа со стеком:

ArrayStack.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "iostream"
using namespace std;
 
class ArrayStack
{
    int capacity;
    int *p;
    int top;
 
public:
    
    ArrayStack(const int &_capacity);
    ArrayStack(const ArrayStack &r);
    ~ArrayStack();
    void push(const int & n);
    int pop();
    bool is_empty() const;
    bool is_full() const;
};
ArrayStack_lib.cpp

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
#include "ArrayStack.h"
#include "iostream"
using namespace std;
 
 
ArrayStack::ArrayStack(const int &_capacity): capacity(_capacity), p(new int[capacity]), top(-1){}
 
ArrayStack::ArrayStack(const ArrayStack &r):capacity(r.capacity), p(new int[capacity]), top(r.top)
{
    for(int i=0; i<=r.top; i++)
        p[i]=r.p[i];
}
 
ArrayStack::~ArrayStack()
{
    delete[] p;
}
 
void ArrayStack::push(const int & n)
{
    if(is_full())
        throw "Stack is full";
    p[++top]=n;
}
 
int ArrayStack::pop()
{
    if(is_empty())
        throw "Stack is empty";
    return p[top--];
}
 
bool ArrayStack::is_empty() const
{
    return top==-1;
}
 
bool ArrayStack::is_full() const
{
    return top==capacity-1;
}
ArrayStack_test.cpp

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
#include "ArrayStack.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
void main()
{
    try
    {
        ArrayStack s(2);
        cout<<s.is_full()<<endl;
        cout<<s.is_empty()<<endl;
        s.push(1);
        cout<<s.is_full()<<endl;
        cout<<s.is_empty()<<endl;
        s.push(3);
 
        ArrayStack s1(s);
        cout<<s1.pop()<<endl;
        cout<<s1.pop()<<endl;
        cout<<s1.is_full()<<endl;
        cout<<s.is_empty()<<endl;
 
        cout<<s1.pop()<<endl;
    }
    catch(char *str)
    {
        cout<<str<<endl;
    }
 
    getche();
}
Если есть вопросы с кодом, помогу.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.