用递归和栈的操作函数实现栈的逆序

用递归和栈的操作函数实现栈的逆序,要求不能使用额外的辅助空间。

int getandremovelastnum(stack<int>&s){
//得到并删除栈底的元素
	int ret = s.top();
	s.pop();
	if (s.empty()){
		return ret;
	}
	else{
		int last = getandremovelastnum(s);
		s.push(ret);
		return last;
	}
}
void reverse(stack<int>&s){
//栈的逆序
	if (s.empty())
		return;
	int i = getandremovelastnum(s);
	reverse(s);
	s.push(i);
}
发布了145 篇原创文章 · 获赞 12 · 访问量 9621

猜你喜欢

转载自blog.csdn.net/weixin_44997886/article/details/105328048