Динамический массив - C# (182930)
Формулировка задачи:
На базе обычного массива (коллекции .NET не использовать) реализовать свой собственный класс
DynamicArray<T>, представляющий собой динамический массив (массив с запасом) для хранения
объектов произвольных типов.
Класс должен содержать:
1. Доступ к элементам с конца при использовании отрицательного индекса (−1: последний,
−2: предпоследний и т.д.).
2. Возможность ручного изменения значения Capacity с сохранением уцелевших данных
(данные за пределами новой Capacity сохранять не нужно).
3. Реализовать интерфейс ICloneable для создания копии массива.
4. Добавить метод ToArray, возвращающий новый массив (обычный), содержащий все
содержащиеся в текущем динамическом массиве объекты.
5. Создать новый класс: циклический динамический массив (CycledDynamicArray) на основе
DynamicArray, отличающийся тем, что при использовании foreach после последнего
элемента должен снова идти первый и так по кругу.
Пока решил только 3 пункт.
Вот сейчас думаю над пунктом 2. Как то так должно быть?
public interface ICloneable { object Clone(); } public object Clone() { return new DynamicArray<T>(); }
public int Capacity(int capacity) { if (capacity > 0) { count++; } return count; }
Задача 5 решается стеком? Или все таки рекурсия в рекурсии?
Решение задачи: «Динамический массив»
textual
Листинг программы
class MyArray<T> { private T[] _array; public int Count { get { ... } } public T this[int index] { get { return index < 0 ? _array[Count + index] : _array[index]; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д