输入数据第一行一个整数N为栈中元素的个数。
接下来一行N个整数表示一个栈依次压入的每个元素。
输出一行表示栈中元素逆序后的栈顶到栈底的每个元素
5 1 2 3 4 5
1 2 3 4 5
use std::io::{prelude::*, BufReader}; pub fn get_and_remove_stack_bottom_element(stk: &mut Vec<i32>) -> i32 { let ans = stk.pop().unwrap(); if stk.is_empty() { return ans; } else { let last = get_and_remove_stack_bottom_element(stk); stk.push(ans); return last; } } pub fn reverse_stack(stk: &mut Vec<i32>){ if stk.is_empty() { return; } let i = get_and_remove_stack_bottom_element(stk); reverse_stack(stk); stk.push(i); } pub fn main() { let stdin = std::io::stdin(); let handle = stdin.lock(); let mut reader = BufReader::new(handle); let mut s = String::new(); reader.read_line(&mut s).expect("err"); let n = s.trim().parse::<i32>().expect("err"); s.clear(); reader.read_line(&mut s).expect("err"); let mut stk: Vec<i32> = s.trim().split(' ').map(|x| x.parse().unwrap()).collect(); reverse_stack(&mut stk); while stk.len() > 0 { print!("{} ", stk.pop().unwrap()); } }