两个栈实现队列的功能

用两个栈实现一个队列的功能?

思路:

  假设两个栈 A 和B,且都为空。
  可以认为栈 A 为提供入队列的功能,栈 B 提供出队列的功能。
  入队列: 入栈 A
  出队列:
  1 如果栈B 不为空,直接弹出栈 B 的数据。
  2 如果栈 B 为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。

 

StatckOne.java 
import java
.util.ArrayList

public class StatckOne 

    private static ArrayList al

    public StatckOne() { 
        if (
al == null

            
al = new ArrayList
(); 

    } 

    public void put(Object o) { 
        
al.add(o
); 
    } 

    public Object top() { 
        
int size al.size
(); 
        if (
al != null
) { 
            if (
size != 0
) { 
                
System.out.println("StatckOne"
); 
                return 
al.get(size – 1
); 
            } else 
                
System.out.println("栈中没有对象"
); 
        } else 
            
System.out.println("没有初始化"
); 
        
System.out.println("StatckOne"
); 
        return 
null

    } 

}

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据