用遞歸和棧的操作函數實現棧的逆序

用遞歸和棧的操作函數實現棧的逆序,要求不能使用額外的輔助空間。

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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章