美文网首页
数组实现可以动态扩容的栈

数组实现可以动态扩容的栈

作者: 成长和自由之路 | 来源:发表于2019-05-31 15:00 被阅读0次

用数组实现可以动态扩容的栈,详细代码如下:

package stack;

public class StackByArrayAutoCapacity {
    String[] arrays;
    int autoCapacity;
    int count;
    int index;

    public StackByArrayAutoCapacity(int n) {
        arrays = new String[n];
        autoCapacity = n;
        count = n;
        index = 0;
    }

    public boolean push(String item) {
        if (index == count) {
            String[] temp = arrays;
            arrays = new String[count + autoCapacity];
            for (int i =0;i<temp.length;i++) {
                arrays[i] = temp[i];
            }
            count = count + autoCapacity;
        }
        arrays[index] = item;
        index++;
        return true;
    }

    public String pop() {
        if (index == 0) {
            return null;
        }
        String temp = arrays[index - 1];
        index--;
        return temp;
    }

    public String peek() {
        if (index == 0) {
            return null;
        }
        String temp = arrays[index - 1];
        return temp;
    }

    public boolean empty() {
        return index == 0;
    }

}

复杂度分析

时间复杂度 : push 和 pop 均为:O(1)
空间复杂度 : push 和 pop 均为:O(1)

相关文章

  • 数组实现可以动态扩容的栈

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

  • C语言 泛型动态数组

    泛型实现思路:万能指针void *动态数组实现思路:动态进行数组内存的扩容 realloc 泛型动态数组 数组可以...

  • 栈:如何实现浏览器的前进和后退功能

    受限制的线性表 先进后出 实现一个栈 数组实现叫顺序栈 支持动态扩容的顺序栈 分析时间复杂度对于出栈来说时间复杂度...

  • ArrayList原理分析

    1、简介 ArrayList,它是List接口的一个实现类。底层是基于数组实现的,可以实现动态扩容,所以又称为动态...

  • 手敲数据结构——可变数组

    可变数组 在数组的基础上,实现动态扩容,比如ArrayList

  • 集合容器:ArrayList 源码阅读

    集合容器:ArrayList 源码阅读 一、概述 ArrayList是一个可以支持动态扩容的数组,底层采用数组实现...

  • 实现栈_基于数组

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

  • 数据结构之栈和队列

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

  • 集合

    Collection List ArrayList 底层:数组实现,动态数组原理:扩容时使用Arrays.copy...

  • 线性结构--链表

    之前写的几种数据结构--数组.栈.队列等都算静态数据结构,就算是实现了动态扩容其底层也是通过静态数组来完成的.本篇...

网友评论

      本文标题:数组实现可以动态扩容的栈

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