Задание 1 (по ООП).
Все мы в разное время сталкивались с реализацией работы со списками на различных языках. Чтобы не забыть столь нужные навыки предлагается повторить почти тоже самое на C#. Списки бывают разные. По крайней мере есть двунаправленные и однонаправленные. Но у обоих этих разновидностей есть масса общих функций. На этом и хочется заострить внимание. В общем задание такое: нужно реализовать базовый абстрактный класс списков, описывающий абстрактные методы общие для обоих типов списков (различаются реализацией): получение элемента по номеру, добавление элемента в начало и/или в определенное место, удаление элемента по номеру, свойство количества элементов в списке. Два наследующих класса (класс однонаправленного списка и двунаправленного) реализуют методы базового класса, каждый по-своему.
Уточнения:
- можно использовать родительский интерфейс, вместо абстрактного класса.
- перемещение по элементам списков должно быть оптимальным. Т.е. нужно хранить текущий элемент и его номер, и перемещаться в кратчайшем направлении.
- необходимо постараться избежать дублирования кода. Перемещение к определенному элементу по его номеру встречается и в удалении и в получении элемента, а значит лучше выделить в отдельную функцию.
- класс элемента списка должен использоваться только внутри класса списка.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3369 просмотров
Комментарии
легко:) например вот так (для
легко:)
например вот так (для односвязного):
class SingleLink
{
int data; // храним целые числа в списке
SingleLink next; // ссылка на следующий элемент
}
соответственно в самом классе списка храним текущий элемент и начало.
Указатели в C#
собственно сабж, как организовать связи между элементами списка?