4. push与pop
4. push与pop【问题描述】
输入n(1<n<20)个数字,将这n个数字按照输入顺序倒序输出。(使用自定义的入栈和出栈函
数)
【输入格式】
共两行,第一行包含一个正整数n,第二行包含n个正整数。
【输出格式】
一行,包含n个正整数。
【输入样例】
5
1 2 3 4 5
【输出样例】
5 4 3 2 1
(看题目,用c++)
程序代码:#include <iostream>
using namespace std;
struct mystack
{
unsigned buf[20];
unsigned size = 0;
};
bool push( mystack& s, unsigned value )
{
if( s.size == sizeof(s.buf)/sizeof(*s.buf) )
return false;
s.buf[s.size++] = value;
return true;
}
bool pop( mystack& s, unsigned& value )
{
if( s.size == 0 )
return false;
value = s.buf[--s.size];
return true;
}
int main( void )
{
unsigned n;
cin >> n;
mystack s;
for( unsigned i=0; i!=n; ++i )
{
unsigned value;
cin >> value;
push( s, value );
}
for( unsigned value; pop(s,value); )
{
cout << value << ' ';
}
}