Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60

Реализация очереди в java, исправить ошибку

01.11.2020, 13:47. Показов 1341. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После удаления элемента из очереди и добавления нового элемента , при выводе массива , бесконечный вывод массива. Не понимаю в чем ошибка.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 class Queue {
        private int[] queue;
        private int maxSize; // максимальное количество элементов в очереди
        private int nElem;  // текущее количество элементов в очереди
        private int front;
        private int rear;
        private int i;
 
        public Queue(int maxSize) {
            this.maxSize = maxSize;
            queue = new int[maxSize];
            this.rear = 0;
            this.front = 0;
            this.nElem = 0;
        }
 
        public void insert(int elem) {
            if (rear == maxSize ) {  // циклический перенос
                rear = 0;
            }
            if (isFull() == false) {
                queue[rear++] = elem;  //увеличение Rear и вставка
                nElem++;  // увеличение количества элементов в очереди
            }
        }
 
        public void remove() {
//            int temp = queue[front++]; // получаем первый элемент из очереди
 
            if (front == maxSize) { // циклический перенос
                front = 0;
            }
            queue[front++]= 0;
            --nElem; // уменьшаем количество элементов в очереди
//            return temp;
 
        }
 
        public void showElement() {
            System.out.println("front =  "+front);
            System.out.println("rear =  "+rear);
            i = front;
            if (rear == front){
                rear--;}
            if (rear == maxSize){
                rear = 0;
            }
            for (i = front;i != rear;i++) {
                if (i == maxSize){
                    i = 0;
                }
                System.out.print(" "+queue[i]+" ");
                }
}
     public boolean isFull() {
         return (nElem == maxSize);
     }
 
     public boolean isEmpty() {
         return (nElem == 0);
     }
    }
...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class MyQueue {
    public static final String ANS = "\u001B[32m";
 
    public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            Queue myQueue = new Queue(5);
            String s = "";
            int x = 0;
            int number = 0;
 
            while (!"4".equals(s)) {
                System.out.println("1. Для добавления элемента в очередь, введите  1");
                System.out.println("2. Для удаления элемента из очереди, введите 2");
                System.out.println("3. Для вывода текущего ссостояия очереди, введите 3");
                System.out.println("4. Для выхода из приложения, введите 4");
                s = scan.next();
                try {
                    x = Integer.parseInt(s);
                } catch (NumberFormatException e) {
                    System.out.println("Неверный ввод");
                }
                switch (x) {
                    case 1:
                        if (myQueue.isFull() == true) {
                            System.out.println("Stack Overflow");
                        }
                        else {
                            System.out.println("Введите число:");
                            number = scan.nextInt();
                            myQueue.insert(number);
                        }
                            break;
                    case 2:
                        myQueue.remove();
                        break;
                    case 3:
                        System.out.println("Elem: ");
                        myQueue.showElement();
                        System.out.println();
 
 
                }
            }
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2020, 13:47
Ответы с готовыми решениями:

исправить ошибку в очереди
имеется код программы в котором нужно исправить вид выводимых на экран оценок.не могу понять как это сделать.в целом программа...

Помогите найти и исправить ошибку в очереди.
Здравствуйте. Вот написал очередь, но работает не совсем корректно. Удаляет "голову очереди" вроде бы правильно, но после добавления...

Помогите исправить ошибку: java.lang.ArrayIndexOutOfBoundsException
Мне 14,я из Украини так что простите за ошибки .Вот в чем проблема я пол инета облазил и не нашол как ето решить помогите))) ...

3
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
01.11.2020, 13:53
Вероятно неправильно работаешь с счётчиками. Дебаггер в зубы и вперде!
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60
01.11.2020, 14:29  [ТС]
Проблема в счетчике это да, в
public void showElement
, i не обнуляется после удаления , как можно решить проблему?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
01.11.2020, 14:41
Обнулять i после удаления. Flies away...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2020, 14:41
Помогаю со студенческими работами здесь

Как исправить ошибку java.rmi.ServerException
Использую в своем проекте проект который использует RMI, с RMI не сильно знаком , вылетает такой експешион java.rmi.ServerException:...

Не знаю как исправить ошибку java.lang.ArrayIndexOutOfBoundsException: length=5; index=5
Использую RecyclerView. Приложение запускается, но во время просмотра списка вылетает на 5 строчке. Ниже код Адаптера и логи АДАПТЕР ...

Реализация очереди
В существующем списке элементов реализуйте: добавление элемента в начало, * добавление элемента в конец, * извлечение и удаление...

Реализация очереди
Задача: Разработать реализации для очередей, состоящих из действительных чисел, с использованием массивов и указателей. Не нахожу ничего...

Реализация очереди
Добрый день. Разбираюсь как устроена очередь как структура данных. вот мой код public class Queue<T> { private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru