2015-05-22 3 views
0

У меня есть следующий класс для очереди.Метод для изменения очереди

public class queueArray { 

    final int maxNumbers=1000; 
    protected Item[] arrayInfo; 
    protected int head ,tail; 

    public queueArray(){ 
     head=tail=0; 
     arrayInfo= new Item[maxNumbers]; 
    } 

    public boolean isEmpty(){ 
     return(head==tail && arrayInfo[tail]==null); 
    } 

    public void insert(Item a){ 
     if(head == tail && arrayInfo[tail]!=null){ 
      System.out.println("Η ουρά είναι γεμάτη."); 
      return; 
     } 
     arrayInfo[tail]=a; 
     tail=(tail+1)%maxNumbers; 
    } 

    public Item removeFirst(){ 
     if (head == tail && arrayInfo[head]!=null){ 
      System.out.println("Η ουρά είναι γεμάτη."); 
      return null; 
     } 
     arrayInfo[head]=null; 
     head=(head+1)%maxNumbers; 
     return arrayInfo[head]; 
    } 
} 

Как я могу сделать дополнительный метод, который изменяет ключи очереди?

ответ

0

Если вы используете класс .NET очереди, то вы можете просто вызвать Reverse(), например:

  Queue<int> q = new Queue<int>(); 
      q.Enqueue(1); 
      q.Enqueue(2); 
      q.Enqueue(15); 
      q.Enqueue(22); 

      q.Reverse(); 
0

Один из способов сделать это было бы вытащить все элементы из передней части очереди и нажмите их в стек. Затем вытащите верхнюю часть стека и верните эти элементы в очередь.

Смежные вопросы