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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.77
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
#1

Стек! - C++

02.08.2011, 11:32. Просмотров 6622. Ответов 17

Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
push n
Добавить в стек число n (значение n задается после команды). Программа должна вывести ok.
pop
Удалить из стека последний элемент. Программа должна вывести его значение.
back
Программа должна вывести значение последнего элемента, не удаляя его из стека.
size
Программа должна вывести количество элементов в стеке.
clear
Программа должна очистить стек и вывести ok.
exit
Программа должна вывести bye и завершить работу.

Размер стека должен быть ограничен только размером доступной оперативной памяти. Перед исполнением операций back и pop программа должна проверять, содержится ли в стеке хотя бы один элемент. Если во входных данных встречается операция back или pop, и при этом стек пуст, то программа должна вместо числового значения вывести строку error.

Я не понял как использовать здесь динамическое выделение памяти , еще и размер, может кто поможет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2011, 11:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стек! (C++):

Используя стек, описать функцию проверяющую, является ли стек пустым - C++
Используя стек, описать функцию проверяющую, является ли стек пустым

Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами - C++
Программа добавляет введенный массив 5*5 в стек и выводит полученный стек двумя столбцами #include <iostream> #include <stdlib.h> ...

Переменные в стеке. Где хранятся? Как обрабатываются? Есть ли программный стек или только стек процессора? - C++
Есть у меня пробелы в познаниях, хотел бы их устранить. 1. Что такое стек в самом языке С++ ? 2. В какой памяти он хранится и почему...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++
Сабж g++ 4.5.0

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) - C++
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то делал,или встречался с таким заданием: ...

Стек - C++
Здравствуйте,помогите найти понятную реализую кода стека с объяснениями.заранее благодарю Добавлено через 27 секунд Не STL

17
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 11:42 #2
murod, это баян, имейте совесть, пользуйтесь поиском
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 11:43  [ТС] #3
так трудно да ответить тут ,?
0
Jupiter
Каратель
Эксперт С++
6558 / 3979 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.08.2011, 11:44 #4
Цитата Сообщение от murod Посмотреть сообщение
Я не понял как использовать здесь динамическое выделение памяти , еще и размер, может кто поможет
а сдесь что непонятно, мы ж не знаеим сколько элементов пользователь захочет запихнуть в стек, потому память нужно выделять динамически

Цитата Сообщение от murod Посмотреть сообщение
так трудно да ответить тут ,?
трудно, ибо на форуме даже тема была, в которой выложены стеки, деки, очереди от самых элементарных реализаций до реализаций с аллокатором и итератором
0
LosAngeles
Заблокирован
02.08.2011, 11:44 #5
это кроме того его баян. Ничего не напоминает?
CТЕК !

я и вполне рабочий стек там набросал? не проверял конечно. Но там воистину сложно ошибиться
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
#include <deque>
#include <string>
#include <stdexcept>
 
 
template <typename T, typename C = std::deque<T> >
        class stack
{   
    C c;
public:
    void    pop();
    void    push(T const&);
    T       top() const;
    size_t  size() const;
    void    clear();
 
};
 
 
 
template <typename T, typename C>
        inline void stack<T, C>::push(T const& rhs)
{
    c.push_back(rhs);
}
 
 
 
template <typename T, typename C>
        inline void stack<T, C>::pop()
{
    if (!c.size()) throw (std::underflow_error("}I{0na"));
    c.pop_back();
}
 
 
 
template <typename T, typename C>
        inline T stack<T, C>::top() const
{
    return c.back();
}
 
 
template <typename T, typename C>
        inline size_t stack<T, C>::size() const
{
    return c.size();
}
 
 
template <typename T, typename C>
        inline void stack<T, C>::clear()
{
    c.clear();
}
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 11:46  [ТС] #6
вы мне этот динамический память как описать напишите а там как нибудь справлюсь
0
LosAngeles
Заблокирован
02.08.2011, 11:49 #7
если ты с циклами и iostream умеешь работать, то написание проги с этим стеком не должно вызвать серьёзных затруднений

Добавлено через 1 минуту
new\delete или std::allocator если ты хочешь с нуля писать
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 11:50  [ТС] #8
Мда я забыл сказать что я ток вчера понял что такое СТЕК ?
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
02.08.2011, 11:56 #9
murod, а способ реализации не задается? На массиве или на списке?
А то можно и стандартный стек использовать...
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 11:57  [ТС] #10
ValeryLaptev, на массиве
0
LosAngeles
Заблокирован
02.08.2011, 11:58 #11
deleted
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
02.08.2011, 12:01 #12
Цитата Сообщение от murod Посмотреть сообщение
Мда я забыл сказать что я ток вчера понял что такое СТЕК ?
Не... Ты это всегда знал, только не знал, что это именно таким страшным словом называется... Магазин патронов у автомата или пистолета - это стек...
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 12:03  [ТС] #13
так я получу ответ на свой главный вопрос ? т. е о задаче ?
0
LosAngeles
Заблокирован
02.08.2011, 12:06 #14
в виде списка стеков полно и на этом форуме, а в виде массива только если фиксированного размера найдёшь примеры
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
02.08.2011, 12:09  [ТС] #15
почему у меня репутация отрицательная ??

Добавлено через 14 секунд
за что меня так ?
0
02.08.2011, 12:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2011, 12:09
Привет! Вот еще темы с ответами:

Стек - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Stack_mass { public: int *data; int max_count,...

Стек - C++
Уважаемые теоретики по С++ подскажите, пожалуйста, как граммотно называются в Стеке самое нижнее и самое верхнее значения. Заранее спасибо.

Стек - C++
Реализовать с использованием массива стек (первый пришел, последний ушел), для чего организовать добавление, удаление элементов в массив и...

Стек - C++
Здравствуйте. У меня такая проблема: Разработать функцию, которая по одному стеку строит два новых: Stack1 из положительных элементов и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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