Я пишу код для реализации очереди с использованием массивов в java. Но это показывает мне неправильный вывод

Я пишу код для реализации очереди с использованием массивов в java. Но это показывает мне неправильный вывод. Вывод должен быть 2 , 3 , 4 Но вывод показал 0 , 2 , 3 , 4 .

мой вопрос был здесь. Но этот глупый алгоритм сайта говорит, что ваш вопрос содержит в основном код. Но если я закончил писать свою проблему, то как я могу написать к ней больше слов. Поэтому я пишу эти предложения.

import java.util.*;
public class first {
  public static class queque{
    static int arr[];
    static int size;
    static int rear;
    queque(int n){
       arr = new int[n];
        size=n;
       int rear = -1;
    }
    public static boolean isEmpty(){
        return rear==-1;
    }`your text`
    public static void add(int data){
     if (rear == size-1){
        System.out.println("queue is full")`your text`;
     } 
     rear++;
     arr[rear]=data;
    }
    public static int remove(){
        if (isEmpty()){
            System.out.println("empty queue");
            return -1;
        }
        int front = arr[0];
        for(int i=0;i<rear;i++){
            arr[i]=arr[i+1];
        }
        rear--;
        
        return front;
    }
    public static int peek(){
        if (isEmpty()){
            System.out.println("empty queue");
            return -1;
        }
        return arr[0];
    }
  }
  public static void main(String[] args) {
    queque q = new queque(5);
    q.add(2);
    q.add(3);
    q.add(4);
    while(!q.isEmpty()){
        System.out.println(q.peek());
        q.remove();
    }
  }
 }

Во-первых, вы могли бы попытаться выделить, где в вашей реализации вы столкнулись с проблемой, а не просто сбрасывать все и сообщать нам, что вывод неверен, ожидая, что мы отладим всю вашу реализацию за вас. Во-вторых, вы бы знали, как улучшить свой вопрос, если бы прочитали как спрашивать . В-третьих, если у вас есть проблемы с тем, как что-то работает на сайте, вы можете проверить мета для обсуждения этой темы или опубликовать собственное обсуждение, а не просто называть его «глупым» и все еще просить о помощи :)

Miss Skooter 12.04.2023 13:30

Наверняка вы пытались отладить свой код с помощью отладчика, прежде чем публиковать разглагольствования на этом «тупом» сайте?

jhamon 12.04.2023 13:35

Вам нужно прочитать Как отлаживать небольшие программы.

Stephen C 12.04.2023 14:23

в сторону: придерживайтесь соглашений об именах Java при публичном показе кода Java

kleopatra 12.04.2023 14:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
10
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть проблема с этой строкой

int rear = -1;

изменить его на

rear = -1;

Это был бы лучший ответ, если бы он объяснял, почему это работает.

VGR 12.04.2023 14:57

поскольку код int rear = -1; является локальным только для этого метода, он не влияет на глобальную переменную rear

Hardik Uchdadiya 12.04.2023 16:24

Другие вопросы по теме