基于数组的栈(Java)

package com.rao.linkList;

/**
 * @author Srao
 * @className ArrayStack
 * @date 2019/12/3 13:41
 * @package com.rao.linkList
 * @Description 基于数组的栈
 */
public class ArrayStack {
    private String[] items; //栈中的数据
    private int count;  //当前栈中元素的个数
    private int n;  //栈的大小

    /**
     * 初始化一个大小为n的栈
     * @param n
     */
    public ArrayStack(int n) {
        items = new String[n];
        count = 0;
        this.n = n;
    }

    /**
     * 入栈
     * @param s
     * @return 成功返回true,失败返回false
     */
    public Boolean push(String s){
        if (count >= n){
            return false;
        }
        items[count] = s;
        count++;
        return true;
    }

    /**
     * 出栈
     * @return 返回出栈的元素
     */
    public String pop(){
        if (count <= 0){
            return null;
        }
        String s = items[count-1];
        count--;
        return s;
    }

    public static void main(String[] args) {
        ArrayStack arrayStack = new ArrayStack(10);
        arrayStack.push("11");
        arrayStack.push("aa");
        arrayStack.push("@@");
        System.out.println(arrayStack.pop());
        System.out.println(arrayStack.pop());
        System.out.println(arrayStack.pop());
    }
}

在定义栈时,给栈定义一个表示栈中数据多少的属性会很有用

原文地址:https://www.cnblogs.com/rao11/p/11976364.html

时间: 2024-10-12 08:59:14

基于数组的栈(Java)的相关文章

笔记六:基于数组的栈的实现

栈 定义:后进先出的数据结构 实现一:基于数组表示的线性表的派生栈的实现. 原理:把线性表的插入和删除操作限制在同一端进行,即得到栈的表现形式. 操作:把数组线性表的右端定义为栈顶. 代码: template<typename T> class stack { public: virtual ~stack() {}; virtual bool empty() const = 0; virtual int size() const = 0; virtual T& top() = 0; v

基于数组实现Java 自定义Queue队列及应用

Java 自定义队列Queue: 队列的抽象数据类型就是一个容器,其中的对象排成一个序列,我们只能访问和取出排在最前端( Front)的对象,只能在队列的尾部( Rear)插入新对象.正是按照这一规则,才能保证最先被插入的对象首先被删除( FIFO).java本身是有自带Queue类包,为了达到学习目的已经更好深入了解Queue队列,自己动手自建java Queue类是个很好的学习开始: 基于数组的实现 ? 顺序数组 借助一个定长数组 Q 来存放对象,即可简单地实现队列.那么,为了符合 FIFO

第一篇博客——基于数组的优先队列(java版)

看过园子里和CSND上那么多大牛精彩的博客后,早就按捺不住想亲手写上几篇.奈何每次坐在电脑前准备敲字的时候,立马赶到浑身不自在,无从下手.实在是因为自高考之后,大学以来,本人几乎就再没动笔写过一篇文字,写作水平退化实在严重.今天鼓起勇气开始写作博客,一方面希望通过多写慢慢地找回写作的感觉,一方面也希望通过博客和大家多多交流,共同进步. 既然是第一次试手,就写个简单易懂的内容——优先队列. 话不多说,先上代码. 1 /** 2 * @author Mr Left 3 * @version 1.0

java、C语言实现数组模拟栈

java: public class ArrayStack { private int[] data; private int top; private int size; public ArrayStack(int size) { this.data = new int[size]; this.size = size; this.top = -1; } public boolean isEmpty() { if (this.top == -1) { return true; } return

Java 基于数组自定义实现容量不可变向量Vector

背景:假定集合 S 由 n 个元素组成,它们按照线性次序存放,于是我们就可以直接访问其中的第一个元素.第二个元素.第三个元素--.也就是说,通过[0, n-1]之间的每一个整数,都可以直接访问到唯一的元素 e,而这个整数就等于 S 中位于 e 之前的元素个数??在此,我们称之为该元素的秩( Rank).不难看出,若元素 e 的秩为 r,则只要 e 的直接前驱(或直接后继)存在,其秩就是 r-1(或 r+1).这一定义与 Java. C++之类的程序语言中关于数组元素的编号规则是一致的.支持通过秩

7.1-全栈Java笔记:数组的概念和初始化

数组概述和特点 数组的定义: 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个下标来访问它们.数组的三个基本特点: 1.长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 2. 其元素必须是相同类型,不允许出现混合类型. 3. 数组类型可以是任何数据类型,包括基本类型和引用类型. 老鸟经验 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量.数组本身就是对象,Ja

7.2-全栈Java笔记:数组常见的操作

数组常见操作 数组的遍历 数组元素下标的合法区间:[0, length-1].我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值. [示例1] 使用循环遍历初始化和读取数组 public class   Test { public static void   main(String[] args) { int[]   a = new int[4]; //初始化数组元素的值 for(int   i=0;i<a.length;i++){ a[i] = 100*i; } //读

教你如何使用Java手写一个基于数组实现的队列

一.概述 队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表.在具体应用中通常用链表或者数组来实现.队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作.队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加. 在Java中队列又可以分为两个大类,一种是阻塞队列和非阻塞队列. 1.没有实现阻塞接口: 1)实现java.util.Queue的LinkList, 2)实现java.util.Abstra

Java从0到全栈-Java语言概述与开发环境搭建

Java从0到全栈-Java语言概述与开发环境搭建 Java从0到全栈 Java语言概述 Java发展历史 Java之父-James Golsing 起源 1991年,SUN(Standford University Network)公司的James Golsing领导的工程师小组想要开发一种用于像电视机.微波炉.电话这样的消费类电子产品的小型计算机语言,该产品的特点是由于不同的厂商选择不同的CPU和操作系统,因此要求该语言不能和特定的体系结构绑定在一起,也就是跨平台的.最初将这个语言命名为Oa