数据结构

数据项入栈和出栈的时间复杂度都为常数O(1).栈操作所耗的时间不依赖于栈中数据项的个数。
栈只允许访问一个数据项:即最后插入的数据项(后进先出),实现方式是数组。在java中,Stack是Vector的子类,它的几个重要的方法是pop,peek,push。

pop方法

/**
移除栈顶的元素,并返回这个元素。
/
    public synchronized E pop() {
        E       obj;
        int     len = size();

        obj = peek();
        removeElementAt(len - 1);

        return obj;
    }

public synchronized void removeElementAt(int index) {
        modCount++;
        if (index >= elementCount) {
            throw new ArrayIndexOutOfBoundsException(index + " >= " +
                                                     elementCount);
        }
        else if (index < 0) {
            throw new ArrayIndexOutOfBoundsException(index);
        }
        int j = elementCount - index - 1;
        if (j > 0) {
            System.arraycopy(elementData, index + 1, elementData, index, j);
        }
        elementCount--;
        elementData[elementCount] = null; /* 把出栈的对应位置的值置为null ,指针下移*/
    }

peek()方法

查看栈顶的元素
public synchronized E peek() {
        int     len = size();

        if (len == 0)
            throw new EmptyStackException();
        return elementAt(len - 1);
    }

push()方法

添加一个元素到栈顶
public E push(E item) {
        addElement(item);

        return item;
    }

队列

数据项入栈和出栈的时间复杂度都为常数O(1).

通常是先进先出(FIFO),如果是优先级队列,会根据提供的比较器或元素的自然顺序进行排序。不管使用哪种排序,队首的元素都可以通过remove或者poll进行移除。先进先出的队列,所有新的元素会被添加到队尾,其他类型的使用不同的添加规则。实现的队列必须要指定排序的规则。

在不违反容量限制的情况下将指定元素添加到队列,如果添加成功返回true,如果没有足够的空间会抛出IllegalStateException异常。
boolean add(E e);
在不违反容量限制的情况下将指定元素添加到队列,当使用容量限制队列,这种方法要优于add(),添加成功返回true,失败则返回falseboolean offer(E e);
检索并移除队首元素。如果队列为空,会抛出NoSuchElementException异常。
E remove();
检索并移除队首元素。如果队列为空,返回null。
E poll();
检索但是并不删除队首元素,如果队列为空,抛出NoSuchElementException异常。
E element();
检索但是并不删除队首元素,如果队列为空,返回null。
E peek();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值