Java版用棧實現佇列的操作
阿新 • • 發佈:2018-12-17
簡介
- 用棧實現佇列的操作
public class StackQueue { private Stack<Integer> stack; public StackQueue(){ stack=new Stack<Integer>(); } //獲取佇列大小 public int size(){ return stack.size(); } //遍歷佇列 public void show(){ Stack<Integer> newStack=new Stack<>(); //實現賦值 int size=stack.size(); for(int i=0;i<size;i++){ int out=stack.pop(); newStack.push(out); } //實現輸出+復原 int size2=newStack.size(); for(int i=0;i<size2;i++){ int in=newStack.pop(); stack.push(in); System.out.print(in+" "); } System.out.println(); } //入隊 public void in(int element){ stack.push(element); } //出隊 public int out(){ if(stack.empty()){ throw new RuntimeException("佇列為空"); } //匯出 Stack<Integer> newStack=new Stack<>(); int size=stack.size(); for(int i=0;i<size;i++){ int ele=stack.pop(); newStack.push(ele); } //獲取返回元素 int element=newStack.pop(); //復原 int size2=newStack.size(); for(int i=0;i<size2;i++){ int ele=newStack.pop(); stack.push(ele); } return element; } }