您的位置:首页 > 其它

用递归函数和栈操作逆序一个栈

2017-10-14 20:31 246 查看
  仅用递归函数和栈操作逆序一个栈

  (1) getAndRemoveLastElement()函数



(2) reverse()函数



(3)完整代码如下:

import java.util.Stack;
//仅用递归函数和栈操作逆序一个栈
public class ReverseStack{

//将栈的栈底元素返回并移除
public static int getAndRemoveLastElement(Stack<Integer> stack)
{
int result=stack.pop();
if(stack.isEmpty())
{
return result;
}else
{
int last=getAndRemoveLastElement(stack); //递归调用
stack.push(result);

return last;
}

}

//逆序一个栈
public static void reverse(Stack<Integer>stack)
{
if(stack.isEmpty())
{
return ;
}
int i=getAndRemoveLastElement(stack);
reverse(stack); //递归调用
stack.push(i);

}
public static void main(String [] args)
{

Stack <Integer> stack=new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);

//逆序一个栈
reverse(stack);

while(!stack.isEmpty())
{
System.out.println(stack.pop());
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 递归