栈先进后出原则。下面就简单的写一个栈的小demo。
代码如下:
1.MyStack.java
/**
* <br>
* <b>类说明: </b>自定义一个栈的基本操作
* <b>作者: </b> Guo.shiLin
* <b>日期: </b> 2018\7\25 0025
* 栈的底层实际上就是一个数组。
* @version 1.0
*/
public class MyStack {
private long[] arr;
int top;
//无参构造,初始化数组的长度。
public MyStack() {
arr = new long[10];
top = -1;
}
//有参构造,自定义数组的长度
public MyStack(int size) {
arr = new long[size];
top = -1;
}
//添加数据
public void push(long value) {
arr[++top] = value;
}
//移除数据
public long pop() {
return arr[top--];
}
//产看数据
public long peek(){
return arr[top];
}
//判断是否为空
public boolean isEmpty() {
return top == -1;
}
//判断是否满了
public boolean isFull() {
return top == arr.length - 1;
}
//查看所有数据
public void print(){
System.out.println(Arrays.toString(arr));
}
}
2.StackTest.java
/**
* <br>
* <b>类说明: </b>栈的使用
* <b>作者: </b> Guo.shiLin
* <b>日期: </b> 2018\7\25 0025
*
* @version 1.0
*/
public class StackTest {
public static void main(String[] args) {
MyStack myStack = new MyStack(4);
myStack.push(12);
myStack.push(23);
myStack.push(11);
myStack.push(22);
System.out.println(myStack.isEmpty());
System.out.println(myStack.isFull());
System.out.println(myStack.peek());
System.out.println(myStack.peek());
System.out.println(myStack.pop());
System.out.println(myStack.isFull());
}
}