Implementing queue in java

后端 未结 3 2019
攒了一身酷
攒了一身酷 2021-01-29 14:16

Implementing a queue in Java is pretty common interview question. I surfed online and saw many implementations where they do fancy stuff like implementing queue interface and wr

相关标签:
3条回答
  • 2021-01-29 14:22
    public class Queue<T>{
    private LinkedList<T> list=new LinkedList<>();
    
    public void insert(T element){
         list.addLast(element);
    }
    
    public void remove(){
        list.removeFirst();
    }
    
    public int size(){
        return list.size();
    }
    
    public T element(){
         return list.getFirst();
    }
    }
    
    0 讨论(0)
  • 2021-01-29 14:35

    One way is to maintain an array of items q and two indices to the head and the tail of the queue (initially set to 0). Pseudo-code follows:

    enqueue(x)
    {   q[tail++] = x;
    }
    
    dequeue()
    {   return q[head++];
    }
    

    If the array overflows, you double the size and reinsert the items. This yields O(1) amortized time per operation. Another approach is to use a linked list (which you should implement) and again store a pointer to the head and a pointer to the tail.

    0 讨论(0)
  • 2021-01-29 14:49

    I have very recently gone through these kind of interview questions.

    Using set methods to add,remove, chekForEmpty etc from a list is a general way to implement a queue.

    for example :

       public void enqueue(E item) {
         list.addLast(item);
         }
    
       public E dequeue() {
          return list.poll();
          }
    
       public boolean hasItems() {
          return !list.isEmpty();
          }
    
       public int size() {
          return list.size();
          }
    
       public void addItems(GenQueue<? extends E> l) {
          while (l.hasItems())
            list.addLast(l.dequeue());
            }
    
    0 讨论(0)
提交回复
热议问题