代码
package base.第一章.背包_队列_和栈.数组实现定容栈.定容栈;
/**
* Created by MK on 2018/7/24.
* public class FiexedCapacityStackOfItem<Item>
* FiexedCapacityStackOfItem(int cap)
* void push(Item item)
* Item pop()
* boolean isEmpty()
* int size()
*/
public class 定容栈_泛型<Item> {
private Item[] a;
private int N;
//创建泛型数组在Java中是不可以实现的,因此我们要使用,类型转换
定容栈_泛型(int cap) {
a = (Item[]) new Object[cap];
}
public int Size(){ return N; }
public void push(Item item){
a[N++]=item;
}
public Item pop(){
return a[--N];
}
}
定容栈泛型测试
package base.第一章.背包_队列_和栈.数组实现定容栈.定容栈;
import edu.princeton.cs.algs4.StdOut;
/**
* Created by MK on 2018/7/24.
* 测试
*/
public class 定容栈_泛型测试 {
public static void main(String[] args) throws InterruptedException {
//定容栈的容量这里我设置的是100
定容栈_泛型 s = new 定容栈_泛型(5);
//压入栈中
s.push(1);
s.push("2");
s.push(3);
s.push("a");
//将数据弹出,因为是栈所以是后进先出的原理
/*
* 这里为什么弹出的是d
* 理由:
* 程序是从上往下执行的,当我执行到.push(d),的时候是最后一次执行
* 因此,最后进入到栈中的就是d
*
* */
StdOut.println(s.pop());
StdOut.println(s.pop());
StdOut.println(s.Size());
}
}