Динамический массив - C# (182930)

Узнай цену своей работы

Формулировка задачи:

На базе обычного массива (коллекции .NET не использовать) реализовать свой собственный класс DynamicArray<T>, представляющий собой динамический массив (массив с запасом) для хранения объектов произвольных типов. Класс должен содержать: 1. Доступ к элементам с конца при использовании отрицательного индекса (−1: последний, −2: предпоследний и т.д.). 2. Возможность ручного изменения значения Capacity с сохранением уцелевших данных (данные за пределами новой Capacity сохранять не нужно). 3. Реализовать интерфейс ICloneable для создания копии массива. 4. Добавить метод ToArray, возвращающий новый массив (обычный), содержащий все содержащиеся в текущем динамическом массиве объекты. 5. Создать новый класс: циклический динамический массив (CycledDynamicArray) на основе DynamicArray, отличающийся тем, что при использовании foreach после последнего элемента должен снова идти первый и так по кругу. Пока решил только 3 пункт.
public interface ICloneable
        {
            object Clone();
        }
 
        public object Clone()
        {
            return new DynamicArray<T>();
        }
Вот сейчас думаю над пунктом 2. Как то так должно быть?
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]; 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы