美文网首页数据结构
栈的实现(基于动态数组)

栈的实现(基于动态数组)

作者: 小小飞的救赎 | 来源:发表于2018-09-13 11:47 被阅读0次

先定义一个接口

public interface Stack<E> {
    int getSize();
    boolean isEmpty();
    boolean contains(E e);
    //入栈
    void push(E e);
    //查看栈顶的数据
    E peek();
    //出栈
    E pop();
}

再定义一个栈的实现类,实现上述接口

/**
 * 基于数组实现栈
 * @author hcc
 *
 */
public class HArrayStack<E> implements Stack<E> {
    private HGenericityArrayList<E> data;
    public HArrayStack() {
        data = new HGenericityArrayList<E>();
    }
    public HArrayStack(int capacity) {
        data = new HGenericityArrayList<E>(capacity);
    }
    public int getCapacity() {
        return data.getCapacity();
    }
    @Override
    public int getSize() {
        // TODO Auto-generated method stub
        return data.getSize();
    }

    @Override
    public boolean isEmpty() {
        // TODO Auto-generated method stub
        return data.isEmpty();
    }

    @Override
    public boolean contains(E e) {
        // TODO Auto-generated method stub
        return data.contains(e);
    }

    @Override
    public void push(E e) {
        // TODO Auto-generated method stub
        data.add(e);
    }

    @Override
    public E peek() {
        // TODO Auto-generated method stub
        return data.get(data.getSize()-1);
    }

    @Override
    public E pop() {
        // TODO Auto-generated method stub
        return data.remove(data.getSize()-1);
    }
    @Override
    public String toString() {
        StringBuilder str = new StringBuilder();
        str.append("HArrayStack:");
        str.append(data);
        return str.toString();
    }
    
}

相关文章

  • 实现栈_基于数组

    基于动态数组实现栈声明栈的接口 实现类及测试

  • 基于动态数组的实现 Java实现 基于链表的栈的实现 Java实现

  • 数据结构之栈和队列

    栈 栈 Stack: 栈是一种线性结构 相比数组,栈对应的操作是数组的子集,所以我们完全可以基于动态数组去实现它 ...

  • 栈的实现(基于动态数组)

    先定义一个接口 再定义一个栈的实现类,实现上述接口

  • 栈的基本实现

    基于动态数组的实现

  • 栈的三种实现

    一、基于deque实现 优点:利用deque动态管理内存,栈的内存无上限,STL中的栈也是基于deque实现的。 ...

  • 数据结构-链表

    章节 动态数组 & 栈 & 队列 与 链表的不同 链表特性 & 图示 链表实现 & 各操作时间复杂度分析 动态数组...

  • 手敲数据结构——最大堆

    最大堆实现 基于动态数组,动态计算最大值的树形结构。

  • 实现链表_链表实现栈和队列_3

    之前用数组实现栈和队列,虽然有resize操作,但是其实还是静态数组,不是真正的动态。当我们用链表实现栈和队列的时...

  • 玩转数据结构之链表

    0. 序列 之前有一篇文章讲解了“动态数组”,以及通过这个“动态数组”实现了栈和队列,而这里的“动态数组”的底层其...

网友评论

    本文标题:栈的实现(基于动态数组)

    本文链接:https://www.haomeiwen.com/subject/oklwgftx.html