ВУЗ:
Составители:
Рубрика:
22
for (int i = 0; i < insIndex; i++) {
newData[i] = data[i];
}
newData[insIndex] = 3;
for (int i = insIndex + 1; i < newData.Length; i++) {
newData[i] = data[i - 1];
}
data = newData;
Введенная последняя строка (data = newData) очень важна, если выделять
отдельную процедуру удаления элемента. Она указывает на то, что data
изменяется. Т. е. в процедуре появится ключевое слово ref.
Для вставки нам необходимо знать массив, в который добавляется
значение, добавляемое значение и позицию, на которую вставляется значение.
Реализация будет иметь следующий вид:
public void insertValue(ref int[] data, int insValue, int
insIndex) {
int[] newData = new int[data.Length + 1];
for (int i = 0; i < insIndex; i++) {
newData[i] = data[i];
}
newData[insIndex] = insValue;
for (int i = insIndex + 1; i < newData.Length; i++) {
newData[i] = data[i - 1];
}
data = newData;
}
Таким образом логика обобщенного алгоритма следующая: массив делится
на 2 части – элементы до вставляемого и после вставляемого. До вставляемого
элементы переписываются без смещения по индексации, а те, которые
расположены после вставляемого, переписываются со смещением индексации в
единицу. Так же в алгоритме должна быть операция записи нового значения в
массив.
Отметим некоторые важные
следствия алгоритма вставки элемента
массива по индексу:
1. Вставка ведет к увеличению размера массива на 1. Как следствие это
ведет к изменению массива.
2. У элементов, которые находятся после вставляемого, индексация
изменяется на единицу.
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »
