Структуры данных и алгоритмы - массивы

Массив - это контейнер, который может содержать фиксированное количество элементов, и эти элементы должны быть одного типа. Большинство структур данных используют массивы для реализации своих алгоритмов. Ниже приведены важные термины для понимания концепции массива.

  • Element - Каждый элемент, хранящийся в массиве, называется элементом.

  • Index - Каждое местоположение элемента в массиве имеет числовой индекс, который используется для идентификации элемента.

Представление массива

Массивы можно объявлять по-разному на разных языках. Для иллюстрации возьмем объявление массива C.

Массивы можно объявлять по-разному на разных языках. Для иллюстрации возьмем объявление массива C.

В соответствии с приведенной выше иллюстрацией следует учитывать следующие важные моменты.

  • Индекс начинается с 0.

  • Длина массива 10, что означает, что он может хранить 10 элементов.

  • Доступ к каждому элементу можно получить через его индекс. Например, мы можем получить элемент с индексом 6 как 9.

Основные операции

Ниже приведены основные операции, поддерживаемые массивом.

  • Traverse - распечатать все элементы массива один за другим.

  • Insertion - Добавляет элемент по указанному индексу.

  • Deletion - Удаляет элемент по данному индексу.

  • Search - Ищет элемент по заданному индексу или по значению.

  • Update - Обновляет элемент по заданному индексу.

В C, когда массив инициализируется размером, он присваивает значения по умолчанию своим элементам в следующем порядке.

Тип данных Значение по умолчанию
bool ложный
char 0
int 0
плавать 0,0
двойной 0,0f
пустота
wchar_t 0

Операция траверса

Эта операция предназначена для обхода элементов массива.

пример

Следующая программа просматривает и печатает элементы массива:

#include <stdio.h>
main() {
   int LA[] = {1,3,5,7,8};
   int item = 10, k = 3, n = 5;
   int i = 0, j = n;   
   printf("The original array elements are :\n");
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:

Вывод

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8

Операция вставки

Операция вставки заключается в вставке одного или нескольких элементов данных в массив. В зависимости от требований новый элемент может быть добавлен в начало, конец или любой заданный индекс массива.

Здесь мы видим практическую реализацию операции вставки, когда мы добавляем данные в конец массива -

пример

Ниже приводится реализация вышеуказанного алгоритма -

#include <stdio.h>

main() {
   int LA[] = {1,3,5,7,8};
   int item = 10, k = 3, n = 5;
   int i = 0, j = n;
   
   printf("The original array elements are :\n");

   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }

   n = n + 1;
	
   while( j >= k) {
      LA[j+1] = LA[j];
      j = j - 1;
   }

   LA[k] = item;

   printf("The array elements after insertion :\n");

   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:

Вывод

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after insertion :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 10 
LA[4] = 7 
LA[5] = 8

Для других вариантов операции вставки массива щелкните здесь

Операция удаления

Удаление означает удаление существующего элемента из массива и реорганизацию всех элементов массива.

Алгоритм

Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приводится алгоритм удаления элемента доступный в K - й позиции ЛА.

1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop

пример

Ниже приводится реализация вышеуказанного алгоритма -

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5;
   int i, j;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   j = k;
	
   while( j < n) {
      LA[j-1] = LA[j];
      j = j + 1;
   }
	
   n = n -1;
   
   printf("The array elements after deletion :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:

Вывод

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after deletion :
LA[0] = 1 
LA[1] = 3 
LA[2] = 7 
LA[3] = 8

Поисковая операция

Вы можете выполнить поиск элемента массива на основе его значения или индекса.

Алгоритм

Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приведен алгоритм поиска элемента со значением ITEM с использованием последовательного поиска.

1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. IF LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRINT J, ITEM
7. Stop

пример

Ниже приводится реализация вышеуказанного алгоритма -

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int item = 5, n = 5;
   int i = 0, j = 0;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   while( j < n){
      if( LA[j] == item ) {
         break;
      }
		
      j = j + 1;
   }
	
   printf("Found element %d at position %d\n", item, j+1);
}

Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:

Вывод

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
Found element 5 at position 3

Операция обновления

Операция обновления относится к обновлению существующего элемента из массива по заданному индексу.

Алгоритм

Рассматривать LA это линейный массив с N элементы и K натуральное число такое, что K<=N. Ниже приводится алгоритм обновления элемента , имеющейся на K - й позиции ЛА.

1. Start
2. Set LA[K-1] = ITEM
3. Stop

пример

Ниже приводится реализация вышеуказанного алгоритма -

#include <stdio.h>

void main() {
   int LA[] = {1,3,5,7,8};
   int k = 3, n = 5, item = 10;
   int i, j;
   
   printf("The original array elements are :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
    
   LA[k-1] = item;

   printf("The array elements after updation :\n");
	
   for(i = 0; i<n; i++) {
      printf("LA[%d] = %d \n", i, LA[i]);
   }
}

Когда мы компилируем и выполняем указанную выше программу, она дает следующий результат:

Вывод

The original array elements are :
LA[0] = 1 
LA[1] = 3 
LA[2] = 5 
LA[3] = 7 
LA[4] = 8 
The array elements after updation :
LA[0] = 1 
LA[1] = 3 
LA[2] = 10 
LA[3] = 7 
LA[4] = 8