美文网首页
Java 用数组实现的栈

Java 用数组实现的栈

作者: 谁动了我的代码QAQ | 来源:发表于2019-02-12 10:08 被阅读0次

最近在看算法,看到了栈,就想着有一次面试时遇到了笔试题是,自己实现一个栈结构,当时没有写出来,现在看到,就想着用数组实现一个简单的顺序栈。直接上代码:

public class ArrayStack {

  private String [] items; //数组
  private int count;  //栈中元素个数
  private int n;      //栈的大小

  //初始化数组
   public ArrayStack(int n) {
      this.items = new String[n];
      this.n = n;
      this.count = 0;
  }
  //入栈操作
  public boolean Push (String item) {
      if (count == n) {  //如果为n则栈满了,入栈失败
          return false;
      }
      items[count] = item;//将item放到下标为count的位置
      count++;            //并且count加一
      return true;
  }
  //出栈操作
  public String Pop () {
      if (count == 0) {  //如果为零,则栈中无数据
          return null;
      }
      String temp = items[count-1]; //返回数组中下标为count—1的值
      count--;                      //并且count减一
      return temp;
  }
}

内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构。

内存空间在逻辑上分为三部分:代码区、静态数据区和动态数据区,动态数据区又分为栈区和堆区。

代码区:存储方法体的二进制代码。高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)控制代码区执行代码的切换。

静态数据区:存储全局变量、静态变量、常量,常量包括final修饰的常量和String常量。系统自动分配和回收。

栈区:存储运行方法的形参、局部变量、返回值。由系统自动分配和回收。

堆区:new一个对象的引用或地址存储在栈区,指向该对象存储在堆区中的真实数据。

相关文章

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

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

  • 数据结构

    用数组实现栈

  • Java 用数组实现的栈

    最近在看算法,看到了栈,就想着有一次面试时遇到了笔试题是,自己实现一个栈结构,当时没有写出来,现在看到,就想着用数...

  • 用数组实现栈、队列

    用数组实现一个栈 用数组实现一个队列 用单链表实现给队列

  • 数据结构学习

    栈 先进先出的数据结构 接口api 接口抽象定义 异常类定义 用数组实现栈 用数组实现栈,这种方法存取数据在没有扩...

  • 关于栈的基础知识介绍

    一、存储结构 栈是一种线性结构:先进后出,可用数组与链表两种方式来实现。 1.数组栈 用数组来实现栈(此处用int...

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

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

  • 用数组实现栈

    用数组实现栈,详细代码如下: 复杂度分析时间复杂度 : push 和 pop 均为:O(1)空间复杂度 : pus...

  • 7天练|Day2:栈、队列和递归

    关于栈、队列和递归的几个必知必会的代码实现栈用数组实现一个顺序栈用链表实现一个链式栈编程模拟实现一个浏览器的前进、...

网友评论

      本文标题:Java 用数组实现的栈

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