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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
#1

Со стеком запутался - C++

27.10.2011, 16:01. Просмотров 393. Ответов 6
Метки нет (Все метки)

Как сделать чтоб это заработало
Компилирую на CodeBlocks (если есть лучше предлагайте)

Код
#include <iostream>
#include <string.h>

template <class Item>
class STACK
{
    private:
    public:
     STACK(int);
     int empty() const;
     void push(Item item);
     Item pop;
};

int main(int argc, char *argv[])
{
    char *a = argv[1]; int N = strlen(a);
    STACK<int> save(N);
    for (int i = 0; i < N; i++)
     {
         if(a[i] == '+')
           save.push(save.pop() + save.pop());
         if(a[i] == '*')
           save.push(save.pop() * save.pop());
         if((a[i] == '0') && (a[i] <= '9'))
           save.push(0);
         while ((a[i] == '0') && (a[i] <= '9'))
           save.push(10*save.pop() + (a[i++]-'0'));
     }
     cout<<save.pop() <<endl;
}

И подскажите задание слегка не пойму:

Реализовать программу-клиента, использующую АТД Стек и Очередь
реализовать на базе массива и на базе связного списка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2011, 16:01     Со стеком запутался
Посмотрите здесь:

Помогите со стеком.. - C++
Смоделировать стек на базе статического массива по заданию. Написать основные операции для работы со стеком (push, pop, top, empty, full) ....

Работа со стеком - C++
Привет всем. Помогите пожалуйста написать прогу. Постороить класс для работы со стеком.Элементы стека -целое число. Ввести две...

Работа со стеком - C++
Ребят, помогите пожалуйста с заданиями: Задание 1 Реализовать стек списком. Все стандартные операции со стеком должны быть...

Помогите со Стеком - C++
Проблема в том что я уже нашел прилично решений но они все через чур запутанные и разные. Хотелось бы максимально понятное и однородное...

Работа со стеком! - C++
Необходимо записать заполнение стека с клавиатуры. Добавлено через 44 секунды #include &lt;iostream&gt; #include &lt;stack&gt; int main...

Задача со стеком - C++
Помогите, пожалуйста, со стеком. Нужно разработать процедуру, которая будет формировать стек Stack. В этот стек должны быть включены по...

Работа со СТЕКОМ!!!!!!:) - C++
Создать класс для работы со стеком. Элемент стека – символ. --- Сформировать два стека,содержащие последовательности символов. ---...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.10.2011, 16:08     Со стеком запутался #2
реализация методов нужна

C++
1
2
3
4
5
6
7
8
9
10
11
12
using namespace std;
 
template <class Item>
class STACK
{
    private:
    public:
     STACK(int){};
     int empty() const{};
     void push(Item item){};
     Item pop(){};
};
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
27.10.2011, 16:13  [ТС]     Со стеком запутался #3
Спасибо тебе огромное
С заданием поможешь

И подскажите задание слегка не пойму:

Реализовать программу-клиента, использующую АТД Стек и Очередь
реализовать на базе массива и на базе связного списка
alkagolik
Заблокирован
27.10.2011, 16:16     Со стеком запутался #4
все уже давно реализовано. тырц
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
27.10.2011, 16:21     Со стеком запутался #5
http://www.cyberforum.ru/cpp-beginne...ead178335.html
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
27.10.2011, 16:51  [ТС]     Со стеком запутался #6
Как думаете это можно назвать Стек на базе массива

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
        #include "StackLi.h"
        #include <iostream.h>
 
        
        template <class Object>
        class Stack
        {
          public:
            explicit Stack( int capacity = 10 );
 
            bool isEmpty( ) const;
            bool isFull( ) const;
            const Object & top( ) const;
 
            void makeEmpty( );
            void pop( );
            void push( const Object & x );
            Object topAndPop( );
 
          private:
            vector<Object> theArray;
            int            topOfStack;
        };
        
        /**
         * Construct the stack.
         */
        template <class Object>
        Stack<Object>::Stack( )
        {
            topOfStack = NULL;
        }
 
        /**
         * Copy constructor.
         */
        template <class Object>
        Stack<Object>::Stack( const Stack<Object> & rhs )
        {
            topOfStack = NULL;
            *this = rhs;
        }
 
        /**
         * Destructor.
         */
        template <class Object>
        Stack<Object>::~Stack( )
        {
            makeEmpty( );
        }
 
        /**
         * Test if the stack is logically full.
         * Return false always, in this implementation.
         */
        template <class Object>
        bool Stack<Object>::isFull( ) const
        {
            return false;
        }
 
        /**
         * Test if the stack is logically empty.
         * Return true if empty, false otherwise.
         */
        template <class Object>
        bool Stack<Object>::isEmpty( ) const
        {
            return topOfStack == NULL;
        }
 
        /**
         * Make the stack logically empty.
         */
        template <class Object>
        void Stack<Object>::makeEmpty( )
        {
            while( !isEmpty( ) )
                pop( );
        }
 
        /**
         * Get the most recently inserted item in the stack.
         * Return the most recently inserted item in the stack
         * or throw an exception if empty.
         */
        template <class Object>
        const Object & Stack<Object>::top( ) const
        {
            if( isEmpty( ) )
                throw Underflow( );
            return topOfStack->element;
        }
 
        /**
         * Remove the most recently inserted item from the stack.
         * Exception Underflow if the stack is empty.
         */
        template <class Object>
        void Stack<Object>::pop( )
        {
            if( isEmpty( ) )
                throw Underflow( );
 
            ListNode *oldTop = topOfStack;
            topOfStack = topOfStack->next;
            delete oldTop;
        }
 
        /**
         * Return and remove the most recently inserted item
         * from the stack.
         */
        template <class Object>
        Object Stack<Object>::topAndPop( )
        {
            Object topItem = top( );
            pop( );
            return topItem;
        }
 
        /**
         * Insert x into the stack.
         */
        template <class Object>
        void Stack<Object>::push( const Object & x )
        {
            topOfStack = new ListNode( x, topOfStack );
        }
 
        /**
         * Deep copy.
         */
        template <class Object>
        const Stack<Object> & Stack<Object>::
        operator=( const Stack<Object> & rhs )
        {
            if( this != &rhs )
            {
                makeEmpty( );
                if( rhs.isEmpty( ) )
                    return *this;
 
                ListNode *rptr = rhs.topOfStack;
                ListNode *ptr  = new ListNode( rptr->element );
                topOfStack = ptr;
 
                for( rptr = rptr->next; rptr != NULL; rptr = rptr->next )
                    ptr = ptr->next = new ListNode( rptr->element );
            }
            return *this;
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 16:56     Со стеком запутался
Еще ссылки по теме:

Работа со стеком. - C++
Интересует вопрос: для использовония функций pop() и push() нужно ли подключать заголовочный файл из стандартной библиотеки?

Работа со стеком - C++
Помогите исправить ошибки! Пусть символ # определен в текстовом редакторе как стирающий символ Backspace, т.е. строка abc#d##c в...

Помогите со стеком - C++
Разработать процедуру, которая формирует стек Stack, включив в него по одному разу элементы, которые входят в стек Stack1, но не входят в...

Работа со стеком - C++
Задача: Написать программу которая создает стек целых чисел считываемых из файла и удаляет из него повторяющиеся числа. Вывести элементы...

Работа со стеком - C++
Люди...Помогите...Напишите пожалуйста библиотеку для работы со стеком и поясните как и что нужно делать!!!))))


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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2011, 16:56     Со стеком запутался #7
Цитата Сообщение от Профан Посмотреть сообщение
topOfStack = NULL;
topOfStack не указатель. Да и вообще в C++ лучше не использовать NULL.
Yandex
Объявления
27.10.2011, 16:56     Со стеком запутался
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru