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 << ' '; } }