数组实现栈

Posted jianwei-dai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组实现栈相关的知识,希望对你有一定的参考价值。

package com.yudaodata.protocol809.task;


import java.util.Arrays;
import java.util.EmptyStackException;

public class ArrayStack<T> {
private Object[] elements = new Object[16]; //数组大小默认16
private int count; //1.-1后指向栈内末尾的元素 2.统计栈内元素的数量

public void push(T e) {
//数组扩容
if (count == elements.length) {
elements = Arrays.copyOf(elements, 2 * count + 1);
}
elements[count++] = e;
}

public T pop() {
if (count == 0) {
throw new EmptyStackException();
}
T o = (T) elements[--count];
elements[count] = null; //防止内存泄漏
return o;
}

public static void main(String[] args) {
ArrayStack<Integer> arrayStack = new ArrayStack<>();
arrayStack.push(1);
arrayStack.push(2);
arrayStack.push(3);
System.out.println(arrayStack.pop()); //2
System.out.println(arrayStack.pop()); //1
System.out.println(arrayStack.pop()); //1
}

}

以上是关于数组实现栈的主要内容,如果未能解决你的问题,请参考以下文章

数据结构栈的基本概念 | 从零开始实现数组栈 | 画图解析 | 数组栈与链式栈

利用数组实现栈

使用一维数组实现共享栈操作

基于动态数组实现栈(利用栈去实现括弧匹配)

数据结构与算法—数组栈和链表栈

数据结构与算法—数组栈和链表栈