«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создайте интерфейс очереди

Создайте интерфейс очереди

Опубликовано 5 ноября 2024 г.
Просматривать:227
  • Создание интерфейса для символьных очередей.

  • Три реализации будут разработаны:

  • Линейная очередь фиксированного размера.

  • Циркулярная очередь (повторно использует пространство массива).

  • Динамическая очередь (растет по мере необходимости).

1 Создайте файл с именем ICharQ.java
// Интерфейс очереди символов.
общедоступный интерфейс ICharQ {
// Вставляем символ в очередь.
void put(char ch);
// Удалить символ из очереди.
символ get();
}

2 Создайте файл с именем IQDemo.java.

3 Начните создавать IQDemo.java, добавив показанный здесь класс фиксированной очереди:

Crie uma interface Queue

4 Добавьте класс CircularQueue, показанный ниже, в IQDemo.java.

Crie uma interface Queue

  • Операция с циклической очередью: повторно использует пространство, освободившееся в массиве при удалении элементов. Может хранить неограниченное количество элементов, пока есть удаления.

  • Граничные условия: очередь не заполняется при достижении конца массива, а когда неудаленный элемент заменяется новым.
    Метод put() должен проверить несколько условий, чтобы определить, заполнена ли очередь.

  • Условия заполнения очереди: Очередь заполнена, если: putloc — меньшая единица, чем getloc. putloc находится в конце массива, а getloc — в начале.

  • Условие пустой очереди: очередь пуста, если getloc и putloc равны.

  • Размер массива: для облегчения проверок базовый массив создается на одну единицу больше размера очереди.

5 Вставьте класс DynQueue, показанный ниже, в IQDemo.java. Он реализует «расширяемую» очередь, размер которой увеличивается, когда заканчивается место.

Crie uma interface Queue

  • В этой реализации очереди, когда очередь заполнена, попытка сохранить другой элемент делает новый базовый массив вдвое больше, чем оригинал будет выделен, текущее содержимое очереди будет скопировано в этот массив, а ссылка на новый массив будет сохранена в q.

6 Чтобы продемонстрировать три реализации ICharQ, вставьте следующий класс в IQDemo.java. Он использует ссылку ICharQ для доступа ко всем очередям.

класс IQDemo {
public static void main(String args[]) {
фиксированная очередь q1 = новая фиксированная очередь(10);
DynQueue q2 = новая DynQueue(5);
CircularQueue q3 = новая CircularQueue(10);
ICharQ iQ;
символ ch;
интервал я;
iQ = q1;
// Вставляет некоторые символы в фиксированную очередь.
for(i=0; i iQ.put((char) ('A' i));
// Отображает очередь.
System.out.print("Содержимое фиксированной очереди: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q2;
// Вставляет некоторые символы в динамическую очередь.
for(i=0; i iQ.put((char) ('Z' - i));
// Отображает очередь.
System.out.print("Содержимое динамической очереди: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q3;
// Вставляет несколько символов в циклическую очередь.
for(i=0; i iQ.put((char) ('A' i));
// Отображает очередь.
System.out.print("Содержимое циклической очереди: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
// Вставляем больше символов в циклическую очередь.
for(i=10; i iQ.put((char) ('A' i));
// Отображает очередь.
System.out.print("Содержимое циклической очереди: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println("\nХранение и потребление из"
"круговая очередь.");
// Сохраняет и потребляет элементы из циклической очереди.
for(i=0; i iQ.put((char) ('A' i));
ch = iQ.get();
System.out.print(ch);
}
}
}

7 Создайте циклическую версию DynQueue. Добавьте в ICharQ метод сброса(), который очищает очередь. Создайте статический метод, который копирует содержимое очереди одного типа в другой.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devsjavagirls/crie-uma-interface-queue-5e0k?1 Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3