本文共 2475 字,大约阅读时间需要 8 分钟。
定义IntegerStack接口,该接口描述了一个存放Integer的栈的常见方法:
public Integer push(Integer item); //如item为null,则不入栈直接返回null。否则直接入栈,然后返回item。
public Integer pop(); //出栈,如栈为空,则返回null。 public Integer peek(); //获得栈顶元素,如栈顶为空,则返回null。注意:不要出栈 public boolean empty(); //如过栈为空返回true public int size(); //返回栈中元素数量定义IntegerStack的实现类ArrayListIntegerStack,内部使用ArrayList存储。该类中包含:
构造函数:
在无参构造函数中新建ArrayList或者LinkedList,作为栈的内部存储。 思考:查询JDK文档,尝试说明本题到底使用哪个List实现类最好。方法:
public String toString() //用于输出List中的内容,可直接调用List的toString()方法。可用System.out.println(list)进行输出。提示:
不建议使用top指针。最好直接复用List实现类中已有的方法。pop时应将相应的元素从列表中移除。
main方法说明
建立ArrayIntegerStack对象输入m个值,均入栈。每次入栈均打印入栈返回结果。输出: 栈顶元素,输出是否为空,然后输出size.输出栈中所有元素(调用其toString()方法)输入x,然后出栈x次,每次均打印出栈的对象。输出:栈顶元素,输出是否为空,输出size。注意:这里的输出栈顶元素,仅输出、不出栈。输出栈中所有元素(调用其toString()方法)。注意:返回null,也要输出。
思考:
如果使用LinkedList来实现IntegerStack,怎么实现?测试代码需要进行什么修改?
输入样例
5 1 3 5 7 -1 2输出样例
1 3 5 7 -1 -1,false,5 [1, 3, 5, 7, -1] -1 7 5,false,3 [1, 3, 5]import java.util.LinkedList;import java.util.Scanner; interface IntegerStack{ public Integer push(Integer item); public Integer pop(); public Integer peek(); public boolean empty(); public int size(); }class ArrayListIntegerStack implements IntegerStack{ LinkedList linkedList=new LinkedList(); public Integer push(Integer item) { if (item==null){ return null; } linkedList.push(item); return item; } public Integer pop() { if (linkedList.size()==0){ return null; } return (int)linkedList.pop(); } public Integer peek() { if (linkedList.size()==0){ return null; } return (int)linkedList.peek(); } public boolean empty() { return linkedList.isEmpty(); } public int size() { return linkedList.size(); } public String toString() { String s=""; s+="["; int i=linkedList.size(); if (i!=0){ i--; for (;i>0;i--){ s+=linkedList.get(i)+", "; } s+=linkedList.get(i)+"]"; }else { s+="]"; } return s; }}public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int num=sc.nextInt(); ArrayListIntegerStack arrayListIntegerStack = new ArrayListIntegerStack(); for (int i=0;i
转载地址:http://zqbdi.baihongyu.com/