一、核心思想
栈只允许访问一个数据项,也就是最后插入的数据项,只有移除了这个数据项才能访问倒数第二个插入的数据项。先进后出。
二、源码
package com.ctw;
/**
* @author TongWei.Chen 2018-09-29 13:37:14
* @Description:
* @Project sjjg-sf
*/
public class MyStack {
private int maxSize;
private long[] arr;
// 栈顶位置
private int top;
// 构造器
public MyStack(int size) {
maxSize = size;
arr = new long[maxSize];
top = -1;
}
// 入栈
public void push(long value) {
arr[++ top] = value;
/*
* 上面一句话等于下面两句话:
* top ++;
* arr[top] = value;
*/
}
// 出栈
public long pop() {
return arr[top --];
/*
* 上面一句话等于下面三句话:
* long value = arr[top];
* top --;
* return value;
*/
}
// 访问栈顶元素
public long peek() {
return arr[top];
}
// 栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 栈是否满了
public boolean isFull() {
return top == maxSize - 1;
}
public static void main(String[] args) {
MyStack myStack = new MyStack(6);
myStack.push(1L);
myStack.push(2L);
myStack.push(3L);
myStack.push(4L);
myStack.push(-100L);
System.out.println(myStack.peek());
while (! myStack.isEmpty()) {
System.out.println(myStack.pop());
}
}
}
三、广告
-
码云地址
-
QQ群【Java初学者学习交流群】:458430385
-
微信公众号【Java码农社区】
img
-
今日头条号:编程界的小学生
网友评论