美文网首页
数组实现stack

数组实现stack

作者: 良人与我 | 来源:发表于2019-01-09 22:15 被阅读12次

在 Java 中 Stack 类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出
下面通过数组来实现栈的出列入列 操作。

package com.river.stack;

import com.google.gson.Gson;


public class ArrayStack<T> {
    int size;
    private int count;

    private Object[] items;

    public ArrayStack(int size) {
        this.size = size;
        items = new Object[size];
    }

    public boolean put(T item){
        if(count >= size){
            return false;
        }
        items[count++] = item;
        return true;
    }
    public T pop(){
        if(count == 0){
            return null;
        }
        T item = (T)items[count-1];
        items[count-1] = null;
        count--;
        return item;
    }
    public void show(){
        System.out.println(new Gson().toJson(this));
    }

    public static void main(String[] args) {
        ArrayStack<String> arrayStack = new ArrayStack<>(5);
        arrayStack.put("hello");
        arrayStack.put("river");
        arrayStack.put("fan");
        arrayStack.put("frank");
        arrayStack.put("luck");
        arrayStack.put("lily");
        arrayStack.show();
        System.out.println(arrayStack.pop());
        System.out.println(arrayStack.pop());
        System.out.println(arrayStack.pop());
        arrayStack.show();
    }


}

打印结果如下
如果超过栈的容量,put 操作会失败。
pop是先入后出

{"size":5,"count":5,"items":["hello","river","fan","frank","luck"]}
luck
frank
fan
{"size":5,"count":2,"items":["hello","river",null,null,null]}

相关文章

  • 数组实现stack

    在 Java 中 Stack 类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后...

  • 堆栈(Stack)---数组实现

    【后缀表达式】运算符号位于两个运算数之后,如,abc+de/- [a+bc-d/e]求值策略:从左向右扫描,逐个处...

  • 用数组实现Stack

    在一些面试题中,常常出现用数组实现Stack,主要实现它的push()/push()/pop()方法。也可以用容器...

  • 用数组实现栈和队列

    1.用数组实现栈Array to Stack size是下一个放数的位置 2.用数组实现队列 用3个变量来控制数组...

  • 栈和队列

    栈——后入先出 利用数组实现,有stack.top表示栈顶元素,为数组的最后一个元素。(也可利用链表实现) 验证栈...

  • 栈实现

    栈是先进先出数据结构。下面基于数组,实现栈结构。 Stack继承Vector elementData:Object...

  • 数据结构之栈和队列

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

  • C++ 数据结构 队列Queue学习

    队列Queue 1.queue也是线性表,可以用数组(由于假溢出的原因使用循环数组)和链表来实现和stack不同的...

  • 栈的实现

    关于栈(stack)stack.jpg 代码实现

  • stack实现

    stack是一种后进先出的数据结构。 stack的顺序写法(数组) stack的链接表示(链表)

网友评论

      本文标题:数组实现stack

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