Динамический массив - 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];
}
}
}