Создайте файл GenQueue.java. Введите в него приведенный ниже код, в котором реализуется очередь фиксированного размера. // Обобщенный класс, реализующий очередь фиксированного размера, class GenQueue implements IGenQ { private T q[]; // Массив для хранения элементов очереди, private int putloc, getloc; // Индексы размещения и извлечения // элементов очереди. // построить пустую очередь из заданного массива public GenQueue(Т[] aRef) { q = aRef; putloc = getloc = 0; } // поместить элемент в очередь public void put(Т obj) throws QueueFullException { if(putloc==q.length-1) throw new QueueFullException(q.length-1); putloc++; q[putloc] = obj; } // извлечь элемент из очереди public Т get throws QueueEmptyException { if(getloc == putloc) throw new QueueEmptyException; getloc++; return q[getloc]; } }

Класс GenQueue объявляется как обобщенный с параметром типа Т. Этот параметр определяет тип данных, хранящихся в очереди. Обратите внимание на то, что параметр типа Т также передается интерфейсу iGenQ.

Конструктору GenQueue передается ссылка на массив, используемый для хранения элементов очереди. Следовательно, для построения объекта класса GenQueue нужно сначала сформировать массив, тип которого будет совместим с типом объектов, сохраняемых в очереди, а его размер достаточен для размещения этих объектов в очереди. В рассматриваемом здесь коде первый элемент массива не используется, поэтому длина массива должна быть на один элемент больше, чем количество элементов, которые допускается хранить в очереди. Например, в следующих строках кода демонстрируется создание очереди для хранения символьных строк: String strArray[] = new String[10]; GenQueue strQ = new GenQueue(strArray);

Перейти на страницу:

Похожие книги