Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Примеры практического задания №3




1) Создать обобщенный класс Array, предназначенный для хранения одномерного массива из N элементов. В классе должны быть реализованы следующие методы:

- конструктор, принимающий N в качестве аргумента;

- метод setItem для изменения произвольного элемента по индексу;

- метод getItem для получения произвольного элемента по его индексу;

- метод getCurrentItem для получения текущего элемента;

- метод nextItem для получения следующего элемента;

- метод prevItem для получения предыдущего элемента.

Для реализации методов getCurrentItem, nextItem, prevItem потребуется внутренний индекс текущего элемента (начальное значение 0). В методах nextItem, prevItem этот индекс должен смещаться в пределах допустимого диапазона (0…N-1). В случае выхода индекса за пределы диапазона методы nextItem, prevItem должны возвращать null. Написать главную функцию, демонстрирующую работу класса. В методах класса предусмотреть проверки на корректность передаваемых параметров.

 

2) Создать обобщенный класс Enum, предназначенный для хранения множества элементов. Отличие данного класса от обычного массива заключается в том, что в классе все элементы должны быть уникальны, без повторений. Например, новый элемент добавляется во множество, только если такого элемента там еще не было. В классе должны быть реализованы следующие методы:

- конструктор, принимающий N в качестве аргумента. Значение N – максимальное количество элементов во множестве;

- метод setItem для записи нового элемента во множество;

- метод getItems для получения всех элементов из множества;

- метод getIntersect для получения нового множества, представляющего собой пересечение множеств (элемент включается в результат, если он есть и в одном и во втором множестве одновременно);

- метод getUnion для получения нового множества, представляющего собой объединение множеств (элемент включается в результат, если он есть хотя бы в одном любом множестве);

- метод getDifferent для получения нового множества, представляющего собой разность множеств (элемент включается в результат, если он есть хотя бы в одном любом множестве, но не в двух множествах одновременно);

Написать главную функцию, демонстрирующую работу класса. В методах класса предусмотреть проверки на корректность передаваемых параметров.

 

3) Создать обобщенный класс CycleQueue, предназначенный для хранения элементов в виде структуры данных типа “циклическая очередь”. Эта структура данных представляет собой одномерный массив, заполнение элементов в котором всегда производится в конец, а извлечение элементов – с начала. Если в такую очередь поместить большее количество элементов, чем она способна принять, то элементы с начала очереди должны быть перезаписаны. При извлечении элементов из такой очереди всегда должен извлекаться самый первый из числа добавленных ранее (но не перезаписанных) элементов. В классе должны быть реализованы следующие методы:

- конструктор, принимающий N в качестве аргумента. Значение N – максимальное количество элементов в очереди;

- метод setItem для записи нового элемента в очередь;

- метод getItem для получения элемента из очереди;

- метод getCount для получения количества элементов в очереди;

- метод isEmpty, определяющий является ли очередь пустой.

Написать главную функцию, демонстрирующую работу класса. В методах класса предусмотреть проверки на корректность передаваемых параметров.

 

4) Создать обобщенный класс DoubleQueue, предназначенный для хранения элементов в виде структуры данных типа “двусторонняя очередь”. Эта структура данных представляет собой одномерный массив, заполнение элементов в котором может производиться как в конец, так и в начало. Извлечение элементов также может производиться как с начала, так и с конца очереди. В классе должны быть реализованы следующие методы:

- конструктор, принимающий N в качестве аргумента. Значение N – максимальное количество элементов в очереди;

- метод setItemStart для записи нового элемента в начало очереди;

- метод getItemStart для получения элемента из начала очереди;

- метод setItemEnd для записи нового элемента в конец очереди;

- метод getItemEnd для получения элемента из конца очереди;

- метод getCount для получения количества элементов в очереди.

Написать главную функцию, демонстрирующую работу класса. В методах класса предусмотреть проверки на корректность передаваемых параметров.

 

5) Создать обобщенный класс PriorityQueue, предназначенный для хранения элементов в виде структуры данных типа “приоритетная очередь”. Эта структура данных представляет собой одномерный массив, запись элементов в котором производиться с конца, а извлечение только с начала. При записи элементов указывается также его приоритет (целое число). При извлечении элементов в аргументах метода можно указывать приоритет, и тогда будет извлекаться первый элемент, имеющий указанный приоритет. В классе должны быть реализованы следующие методы:

- конструктор, принимающий N в качестве аргумента. Значение N – максимальное количество элементов в очереди;

- метод setItem для записи нового элемента в очередь (имеет 2 аргумента – элемент и приоритет);

- метод getItem для получения первого элемента из очереди;

- метод getItemPriority для получения первого элемента из очереди, но только имеющего указанный приоритет;

- метод getCount для получения количества элементов в очереди.

Написать главную функцию, демонстрирующую работу класса. В методах класса предусмотреть проверки на корректность передаваемых параметров.

 

 





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 404 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент всегда отчаянный романтик! Хоть может сдать на двойку романтизм. © Эдуард А. Асадов
==> читать все изречения...

2497 - | 2225 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.