package algorithm;
import java.util.Arrays;
import java.util.Iterator;
/**
- @author Administrator
- @date 2022-09-12 16:38
- 数组栈
/
public class MyArrayStack implements Iterable {
// 定义一个数组
private Object[] elementData;
// 顶部的索引
private int topIndex;
// 构造方法确定栈的长度
public MyArrayStack(int size) {
this.elementData = new Object[size];
} /* - 定义迭代器
- @return
*/
@Override
public Iterator iterator() {
return new MyArrayStackIter();
}
class MyArrayStackIter implements Iterator{
@Override
public boolean hasNext() {
return topIndex != elementData.length;
}
@Override
public E next() {
return pop();
}
@Override
public void remove() {
pop();
}
}
public boolean push(E element){
// 判断扩容两倍
if(topIndex >= elementData.length){
elementData = Arrays.copyOf(elementData,elementData.length << 1);
}
elementData[topIndex++] = element;
return true;
}
// 删除并出栈 是否删除就看topIndex本身的大小是否改变
public E pop(){
if(topIndex
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/16690493.html
关于笔者:我的主页
欢迎来我的51CTO主页踩一踩~ 我的51CTO博客
Original: https://www.cnblogs.com/rainbow-1/p/16690493.html
Author: 靠谱杨
Title: Java实现栈
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615955/
转载文章受原作者版权保护。转载请注明原作者出处!