欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(练习)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);
       }
    
    
    }
    
    
相关标签: Java 数据结构