Java实现“栈”

1.栈的定义

:栈(Stack)又名堆栈,是允许在同一端进行插入和删除操作的特殊线性表。其中,允许进行插入和删除操作的一段交租栈顶(Top),另一端叫作栈顶(Bottom),栈顶固定,栈顶浮动。栈中的元素个数为零时,该栈叫作空栈。插入一般交租进栈(Push),删除叫作退栈(Pop)。栈也叫作后进先出的线性表。具体数据结构如下:

2.Java实现栈

栈的数据结构如下:

栈的数据结构
要实现一个栈,需先实现一下核心方法:

  • push() :向栈中压入一个数据,先入栈的数据在最下面
  • pop() :弹出栈顶数据,即移除栈顶数据
  • peek() :返回当前的栈顶数据
    定义栈的数据结构
    public class Stack<E> {
      private Object[] data=null;
      private int maxSize=0;//栈的容量
      private int top=-1;//栈顶指针
      //构造函数:根据指定的size初始化栈
      Stack(){
          this(10);
      }
      Stack(int initialSize){
          if (initialSize>=0){
              this.maxSize=initialSize;
              data=new Object[initialSize];
              top=-1;
          }else {
              throw new RuntimeException("初始化大小不能小于0"+initialSize);
          }
      }
    定义栈push方法
    public boolean push(E e){
          if (top==maxSize-1){
              throw new RuntimeException("栈已满,无法继续将元素入栈!");
          }else {
              data[++top]=e;
              return true;
          }
      }
    定义栈pop方法
    public E pop(){
          if (top==-1){
              throw new RuntimeException("栈为空!");
          }else {
              return (E)data[top--];
          }
      }
    定义栈peek方法
    public E peek(){
          if (top==-1){
              throw new RuntimeException("栈为空!");
          }else {
              return (E)data[top];
          }
      }
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务