Циклическая очередь Java-программирования

1

Я пытаюсь вставить элементы круговыми в очередь. У меня есть следующий код, но он не вставляет их правильно. в чем проблема?

public boolean insert(int element){
    if ( head == -1 && tail == -1 ){
        head = 0;
        tail = 0;
        elements[tail] = element;
        return true;
    }  
    else if((tail+1)%capacity == head) {
        System.out.println("Full");
        return false;
    }
    else {
        tail = (tail+1)%capacity;
        elements[tail] = element;
        return true;
    }
}
  • 0
    Код работает нормально для меня. Можете ли вы указать свою проблему более точно? Когда возникает проблема? Каков ожидаемый результат? Каков выходной результат?
  • 0
    например. я хочу вставить некоторые элементы таким образом: for (int i = 0; i <6; i ++) {myQueue.insert (i + 1);}. первый элемент всегда нулевой.
Показать ещё 7 комментариев
Теги:

1 ответ

1
public boolean insert(int element){
    if (getCapacity() == capacity) {
        System.out.println("Queue is full.");
        return false;
    }else {
        elements[tail] = element;
        tail = (tail+1)%capacity;
        n++;
       return true;
    }
}

а также

public int getCapacity(){
    return n;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню