Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/259: Рейтинг темы: голосов - 259, средняя оценка - 4.96
4 / 4 / 1
Регистрация: 18.09.2014
Сообщений: 249

Вывести содержимое стека в порядке поступления элементов в стек

22.02.2015, 01:35. Показов 48820. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заполнить стек значениями произвольного типа. Вывести содержимое стека в порядке поступления элементов в стек.

как это и можно теорию и пояснения
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2015, 01:35
Ответы с готовыми решениями:

Записать в стек все заглавные буквы заданного текста и вывести содержимое стека на экран
Записать в стек все заглавные буквы некоторого текста. Вывести стек на экран.

Используя стек вывести числа введенные пользователем в обратном порядке элемент стека – число
помогите плиз решить ..Используя стек вывести числа введенные пользователем в обратном порядке элемент стека – число; числа введенные...

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

13
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.02.2015, 09:32
Цитата Сообщение от bogdan_z Посмотреть сообщение
как это
Это работа с классами и шаблонами (вот, например). Вы вчера едва-едва с матрицами разобрались. Уверены, что не рановато?

Цитата Сообщение от bogdan_z Посмотреть сообщение
теорию и пояснения
Было уже. Книжки и сайты.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
22.02.2015, 10:41
Из стека значения в порядке поступления получить нельзя по определению.
Можно только в обратном порядке.
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
#include <iostream> 
#include <stack> 
using namespace std; 
int main() 
{
    setlocale(LC_ALL,"Rus");
    stack<int> s; 
    for (int i = 0; i < 10; ++i) 
       {
          s.push(i);
          cout<<i<<' ';
       } 
    cout << "\nРазмер стека равен " << s.size() << endl; 
    cout << "Снятие со стека всех элементов" << endl; 
    while (!s.empty()) 
    { 
        cout << s.top() <<' '; 
        s.pop(); 
    } 
    cout << "\nРазмер стека равен " << s.size() << endl; 
 
   system("pause");
   return 0;
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.02.2015, 11:12
Цитата Сообщение от zss Посмотреть сообщение
Из стека значения в порядке поступления получить нельзя по определению.
Можно только в обратном порядке.
Вот, кстати, точняк. Слона-то я и не заметил.
0
4 / 4 / 1
Регистрация: 18.09.2014
Сообщений: 249
22.02.2015, 11:41  [ТС]
gru74ik, да это я сам затупил,забыл про то что он считает только нечетные и думал что не правильно что то
буду дальше разбираться
спасибо большое
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.02.2015, 12:13
Цитата Сообщение от gru74ik Посмотреть сообщение
Слона-то я и не заметил.
bogdan_z, имелось ввиду, что такое явление, как стек, и std::stack в частности, работает по принципу LIFO.
LIFO (акроним Last In, First Out, «последним пришёл — первым ушёл») — способ организации и манипулирования данными относительно времени и приоритетов.[1]
Если Вы, скажем, решили создать стек из десяти целочисленных элементов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, и первым Вы ввели ноль, то при выводе такого стека, скажем, на экран монитора, вывод начнётся с конца, то есть, сперва выведется 9, затем 8 и так далее, вплоть до нуля.

При чём тут
Цитата Сообщение от bogdan_z Посмотреть сообщение
он считает только нечетные
я вовсе не понял.
0
4 / 4 / 1
Регистрация: 18.09.2014
Сообщений: 249
22.02.2015, 12:24  [ТС]
gru74ik, я про вчерашнюю тему с двухмерным массивом
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.02.2015, 12:26
zss, у Вас стек из десяти целочисленных элементов. А в первом сообщении сказано:
Цитата Сообщение от bogdan_z Посмотреть сообщение
Заполнить стек значениями произвольного типа.
Так что, надо с шаблонами делать.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
22.02.2015, 13:14
Цитата Сообщение от gru74ik Посмотреть сообщение
Заполнить стек значениями произвольного типа.
Так стек - уже шаблон.
Для примера я взял int
Цитата Сообщение от zss Посмотреть сообщение
stack<int> s;
Как еще можно извратиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout<<"Тип стека, 1-целые, 2-действительные,3 -символьные:";
int kind;cin>>kind;
switch(kind)
{
case 1:
   stack<int> s;
   break;
case 2:
   stack<double> s;
   break;
case 3:
   stack<char> s;
}
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.02.2015, 14:25
А ещё можно извратиться (с), чтобы пользователь вводил, что ему вздумается, а тип уже после введения данных определялся. Например, первый элемент принимать как строку, потом строку парсить (есть символы помимо цифр или нет, есть знак или нет, есть плавающая точка или нет и т.п.) и соответственно этому тип определять. А уже в соответствии с определённым типом stack создавать.

Добавлено через 7 минут
Цитата Сообщение от zss Посмотреть сообщение
Так стек - уже шаблон.
Да, действительно. Чё-то я тупанул. Решил выпендриться, в итоге чушь спорол
0
4 / 4 / 1
Регистрация: 18.09.2014
Сообщений: 249
22.02.2015, 22:16  [ТС]
zss, получается шаблон писать не нужно?
а то я уже пол интернета перечитал
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
23.02.2015, 09:43
bogdan_z, есть готовое решение - std::stack. Он и так реализован на шаблонах. Так что, в качестве имени типа ему можно подсунуть любой тип - хоть базовый (int, char, double и т.п.), хоть пользовательский (самодельный класс), хоть библиотечный (std::string, например).

Можно написать свою реализацию стека. Вот там уже Вам решать, каким он будет - для одного конкретного типа, для нескольких типов (перегрузка), для любых типов (шаблоны).
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
08.10.2018, 15:09
Цитата Сообщение от zss Посмотреть сообщение
Из стека значения в порядке поступления получить нельзя по определению.
получить нельзя. но в задаче другая формулировка:
Цитата Сообщение от bogdan_z Посмотреть сообщение
Заполнить стек значениями произвольного типа. Вывести содержимое стека в порядке поступления элементов в стек.
можно выводить сразу при поступлении, но это не будет соответствовать условию (сначала заполнить, затем вывести)
поэтому используем, например, дополнительный стек.
для целочисленного типа:
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
#include <iostream>       
#include <stack>
 
int main ()
{
    std::stack<int> stack1;
    std::stack<int> stack2;
  
    for (int i=0; i<5; ++i) 
    stack1.push(i);     
 
    while (!stack1.empty())
    {
      stack2.push(stack1.top());
      stack1.pop();
    }
    
    while (!stack2.empty())
    {
      std::cout << stack2.top() <<" ";
      stack2.pop();
    }
    std::cout << '\n';
system("pause");
return 0;
}
если требуется сохранять содержимое стеков, нужно работать с копиями.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
08.10.2018, 15:34
Меня всегда шокировало такое отношение к программированию. Хочется вознести руки к небу и закричать "ну как так-то!?"

Я говорю о типичном "новичке на сайте", который в понедельник не может Hello world написать, во вторник - массив на экран вывести, а в среду не может реализовать алгоритм Кристофидеса в ориентированном графе. Ну вы ж явно мимо ушей инфу пропускаете, зачем вам это программирование вообще???

Конкретно этот новичёк удваивает мой шок тем, что уже четвёртый год что-то ваяет в разделе "С++ для начинающих" и всё никак не может уйти дальше "задачек про массивы".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2018, 15:34
Помогаю со студенческими работами здесь

Заполнить стек 20 случайными числами с интервала [0; -10]. Вывести стек на экран. Изъять из стека каждый четвертый элеме
Заполнить стек 20 случайными числами с интервала . Вывести стек на экран. Изъять из стека каждый четвертый элемент, найти сумму изъятых...

Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из них на единицу и снов
Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из них на единицу и снова поместить в стек...

Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ.
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести...

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

Найти произведение элементов стека и поместить результат в стек
Сформировать стек из 5 чисел. Найти произведение 3-го и 4-го чисел из стека. Результат поместить в стек. если можно хотелось бы с...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru