(练习)Java Data Structure--Stack and Queue
程序员文章站
2024-03-18 08:42:22
...
@[TOC]((练习) Java Data Structure–Stack and Queue)
-
Stack(Detail)
该文件仅实现简单的Stack方法在JDK源码中,stack是线程安全的,因为stack继承了Vector,每一个方法都加入了synchronized. 下面为方法:
public class Stack<E> extends ArrayList<E>{ Stack(){ super(); } /** * 栈是否为空 * @return */ public boolean empty(){ return isEmpty(); } /** * 查看栈最尾部 * @return */ public E peek(){ return get(getSize()-1); } /** * 删除最后一位 * @return */ public E pop(){ return remove(getSize()-1); } /** * 加入元素 * @param e * @return */ public E push(E e){ add(e); return e; } /** * 查找元素 * @param e * @return */ public int search(E e){ return indexOf(e); } }
-
Queue(Detail)
该文件仅实现简单的Queue方法下面为方法:
public class Queue<E> extends ArrayList<E>{ Queue(){ super(); } /** * * 增加元素 * @param e */ @Override public void add(E e) { super.add(e); } /** * 删除最后一位(队列为空时抛出异常) * @return */ public E remove(){ if (getSize()==0) throw new NoSuchElementException("This queue is null"); return remove(getSize()-1); } /** * 删除最后一位(队列为空时返回null) * @return */ public E poll(){ if(getSize()==0) return null; return remove(getSize()-1); } /** * 返回最后一位元素(为空抛异常) * @return */ public E element(){ if (getSize()==0) throw new NoSuchElementException("This queue is null"); return get(getSize()-1); } /** * 返回最后一位元素 * @return */ public E peek(){ return get(getSize()-1); } }