ВУЗ:
Составители:
Рубрика:
11
Задача 4: Удалить элемент из массива по индексу.
В этой задаче неявно подразумевается, что у нас есть массив (пусть будет
массив целых чисел (пусть с именем data)) и индекс удаляемого элемента
(целочисленное число (пусть с именем delIndex)).
Рассуждения. Если алгоритм, который необходимо реализовать, будет
написан верно, то он будет верно работать на конкретных данных. Поэтому
рассмотрим в начале конкретные данные.
Пусть массив будет заполнен
числами 2,4,6,8,4,1,3,7. И надо удалить элемент с индексом 3.
Запишем массив в виде таблицы, в первой строке которой будут написаны
значения элементов, а во второй – индексы элементов (напомним, что для того,
что бы обратиться к элементу массива, необходимо написать
имяМассива[индекс]).
Массив data до удаления:
2
4 6 8 4 1 3 7
0
1 2 3 4 5 6 7
И запишем массив после удаления элемента с индексом 3:
2
4 6 4 1 3 7
0 1 2 3 4 5 6
Видно, что размер массива после удаления уменьшился на единицу. Т. е.
размер результирующего массива равен (data.Length - 1). И очевидно, что после
удаления массив изменился, если изменился его размер. Назовем
получившийся массив именем newData. Тогда алгоритм работы для этого
конкретного случая можно записать в виде:
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int[] newData = new int[data.Length - 1];
newData[0] = data[0];
newData[1] = data[1];
newData[2] = data[2];
newData[3] = data[4];
newData[4] = data[5];
newData[5] = data[6];
newData[6] = data[7];
Такая реализация для этого конкретного случая будет работать. Для того,
что бы реализовать алгоритм в обобщенном виде, запишем эту реализацию с
небольшим изменением, правильность которого очевидна.
int[] data = new int[] { 2, 4, 6, 8, 4, 1, 3, 7 };
int[] newData = new int[data.Length - 1];
newData[0] = data[0];
newData[1] = data[1];
newData[2] = data[2];
newData[3] = data[3 + 1];
newData[4] = data[4 + 1];
newData[5] = data[5 + 1];
newData[6] = data[6 + 1];
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »