Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2012, 20:41   #1
ichigo9911
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 16
По умолчанию как вывести элементы стека в обратном порядке

как вывести элементы стека в консоль в обратном порядке? Что-то ничего придумать не могу, кроме как переписать в массив и вывести массив... Может что-нибудь получше посоветуете? Код не нужен, просто идеи, как это сделать.
ichigo9911 вне форума Ответить с цитированием
Старый 25.03.2012, 21:17   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

что значит "в обратном" порядке? т.е в порядке их помещения в стек?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 25.03.2012, 21:22   #3
ichigo9911
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
что значит "в обратном" порядке? т.е в порядке их помещения в стек?
да, в порядке их помещения в стек
ichigo9911 вне форума Ответить с цитированием
Старый 25.03.2012, 21:36   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2ichigo9911
ну т.к стек - простейшая структура данных, в которой имеем доступ только к вершине понятно, что нужно где-то хранить промежуточные данные чтобы добраться до дна. массив как вариант конечно. но если задание поставлено так, что массивы использовать нельзя, то можно использовать рекурсию

Код:
#include <iostream>
#include <stack>

template <typename T>
void printStack(std::stack<T> &s)
{
	if (!s.size())
		return;

	T t = s.top();
	s.pop();

	printStack(s);

	std::cout << t << std::endl;
	s.push(t);
}

int main ()
{
	std::stack<int> s;

	s.push(1);
	s.push(2);
	s.push(3);
	s.push(4);
	s.push(5);

	printStack(s);
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 26.03.2012, 23:51   #5
ichigo9911
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 16
По умолчанию

Спасибо, работает) но только я не понимаю как работает рекурсия) чета никак у меня она в голове не укладывается
ichigo9911 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать файл содержащий те же элементы в обратном порядке Aimet Паскаль, Turbo Pascal, PascalABC.NET 3 11.04.2012 13:47
ВЫвести элементы массива в обратном порядке Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 1 01.12.2011 08:25
в целочисленной прямоугольной матрице вывести элементы последней строки в обратном порядке fanofinter Паскаль, Turbo Pascal, PascalABC.NET 3 07.11.2011 11:14
как реализовать функцию для того что бы скопировать элементы одного массива во второй в обратном порядке mansp Общие вопросы C/C++ 8 28.10.2010 15:48
Вывести числа в обратном порядке asmcc Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 20.02.2010 11:46