Java实现栈

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博客

Java实现栈

Original: https://www.cnblogs.com/rainbow-1/p/16690493.html
Author: 靠谱杨
Title: Java实现栈

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620484/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球