如果不用数组要自己实现一个队列的数据结构怎么作呢?

解决方案 »

  1.   

    单向队列:
    import javakit.util.*;
    import java.util.*;public class Queue{
    private LinkedList list = new LinkedList();
    public void put(Object v){list.addFirst(v);}
    public Object get(){return list.removeLast();}
    public boolean isEmpty(){return list.isEmpty();}
    }
    双向队列:
    import java.util.*;
    class DQueue implements Collection{
    private LinkedList lists ;
    public DQueue(){
         lists = new LinkedList();
    }
    public void  put_front(Object v){
    lists.addFirst(v);
    }
    public void put_back(Object v){
    lists.addLast(v);
    }
    public Object get_front(){
    return lists.removeFirst();
    }
    public Object get_Back(){
    return lists.removeLast();
    }
    public boolean isEmpty(){
    return lists.isEmpty();
    }
    public int size(){
    return lists.size();
    }
    public boolean contains(Object o) {
        return lists.contains(o);
      }
      public Iterator iterator() {
        return lists.iterator();
      }
      public Object[] toArray() {
        return lists.toArray();
      }
      public Object[] toArray(Object a[]) {
        return lists.toArray(a);
      }
      public boolean add(Object o) {
        lists.addLast(o);
        return true;
      }
      public boolean remove(Object o) {
        return lists.remove(o);
      }
      public boolean containsAll(Collection c) {
        return lists.containsAll(c);
      }
      public boolean addAll(Collection c) {
        return lists.addAll(c);
      }
      public boolean removeAll(Collection c) {
        return lists.removeAll(c);
      }
      public boolean retainAll(Collection c) {
        return lists.retainAll(c);
      }
      public void clear() { lists.clear(); }
    }
      

  2.   

    如果不能用linkedlist还有什么方式可以实现呢? 谢谢
      

  3.   

    为什么不直接用LinkedList呢,队列需要的方法linkedlist不是都提供了么?
      

  4.   

    class Queue extends LinkList
    {
     boolean isEmpty()
      {
        if(m_FirstNode==null)return ture;
        else return false;
       }
    void enqueue(int newdata)
    {
     Node next=m_FirstNode;
     if(next==null)
      m_FirstNode=new Node(newdata)
     else
      {
       while(next.getNext()!=null)
        next=next.getNext();
       next.setNext(new Node(newdata));
       }
    }
    int dequeue()
    {
     int data;
     if(!isEmpty())
      {
       data=m_FirstNode.getData();
       m_FirstNode=m_FirstNode.getNext();
       return data;
       }
       else return -1;
    }
      

  5.   

    1如果在jdk1.4里面实现队列和栈的话,就要用用linkedlist,而在1.5里面多了一个接口Queue,你可以自己去查一下文档.
      

  6.   

    java中的util包里面已经有实现了的队列,堆栈,树等结构,干嘛还要花时间自己去写呢?