Учебники

3) Массив в структурах данных

Что такое массивы?

Массив — это структура данных для хранения более одного элемента данных, который имеет схожий тип данных. Элементы массива расположены в смежных местах памяти. Эти ячейки памяти называются элементами этого массива.

Общее количество элементов в массиве называется длина . Доступ к деталям массива о его позиции. Эта ссылка называется индексом или индексом .

В этом уроке о структуре данных вы узнаете,

Концепция массива

Концептуальная схема массивов

Приведенная выше диаграмма иллюстрирует, что:

  1. Массив — это контейнер элементов.
  2. Элементы имеют определенное значение и тип данных, такие как «ABC», TRUE или FALSE и т. Д.
  3. Каждый элемент также имеет свой собственный индекс, который используется для доступа к элементу.

Замечания:

  • Элементы хранятся в смежных местах памяти.
  • Индекс всегда меньше, чем общее количество элементов массива.
  • С точки зрения синтаксиса, любая переменная, объявленная как массив, может хранить несколько значений.
  • Почти все языки имеют одинаковое понимание массивов, но по-разному объявляют и инициализируют их.
  • Однако три части всегда будут оставаться общими для всех инициализаций, т. Е. Имя массива, элементы и тип данных элементов.

Следующая диаграмма иллюстрирует синтаксис объявления массива в Python и C ++, чтобы показать, что понимание остается тем же, хотя синтаксис может немного отличаться в разных языках.

Понять синтаксис массивов

  • Имя массива: необходимо для легкой ссылки на коллекцию элементов
  • Тип данных: необходим для проверки типа и целостности данных
  • Элементы: это значения данных, присутствующие в массиве

Зачем нам нужны массивы?

Вот несколько причин для использования массивов:

  • Массивы лучше всего подходят для хранения нескольких значений в одной переменной
  • Массивы лучше и быстрее обрабатывают многие значения
  • Сортировать и искать значения проще в массивах

Создание массива в Python

В Python массивы отличаются от списков; списки могут иметь элементы массива типов данных, тогда как массивы могут иметь элементы только одного типа данных.

В Python есть отдельный модуль для обработки массивов, называемый массивом, который необходимо импортировать перед началом работы с ними.

Примечание. Массив должен содержать действительные числа, такие как целые числа и числа с плавающей запятой, строки не допускаются.

Следующий код иллюстрирует, как вы можете создать целочисленный массив в Python для хранения баланса счета:

 import array
 balance = array.array('i', [300,200,100])
 print(balance)

Способы объявить массив в Python

Вы можете объявить массив в Python при его инициализации, используя следующий синтаксис.

arrayName = array.array(type code for data type, [array,items])

Следующее изображение объясняет синтаксис.

Синтаксис массива в Python

  1. Идентификатор : укажите имя, как обычно, вы делаете для переменных
  2. Модуль : Python имеет специальный модуль для создания массивов, который называется «массив» — вы должны импортировать его перед использованием
  3. Метод : модуль массива имеет метод для инициализации массива. Требуется два аргумента, typecode и элементы.
  4. Код типа : укажите тип данных, используя доступные коды типов (см. Список ниже)
  5. Элементы : укажите элементы массива в квадратных скобках, например [130,450,103]

В следующей таблице показаны коды типов, доступные для поддерживаемых типов данных:

Введите код Тип C Тип Питона Минимальный размер в байтах
«С» голец персонаж 1
‘B’ символ без знака ИНТ 1
«Б» подписанный символ ИНТ 1
«И» Py_UNICODE Unicode персонаж 2
‘час’ подписанный короткий ИНТ 2
‘ЧАС’ неподписанный короткий ИНТ 2
‘я’ подписанный int ИНТ 2
‘Я’ без знака int длинный 2
«Л» подписанный долго ИНТ 4
‘L’ без знака долго длинный 4
«Е» поплавок поплавок 4
‘D’ двойной поплавок 8

Как получить доступ к определенному значению массива?

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

СИНТАКСИС

arrayName[indexNum]

ПРИМЕР

balance[1]

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

Доступ к элементу массива

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

import array
balance = array.array('i', [300,200,100])
print(balance[1])

ВЫВОД

200

Операции с массивами

Модуль массива Python имеет отдельные функции для выполнения операций с массивами. Это деструктивный метод работы с массивами, который означает, что модификация будет сохранена в переменной массива.

Вставить

С помощью этой операции вы можете вставить один или несколько элементов в массив в начале, конце или любом заданном индексе массива. Этот метод ожидает два аргумента index и value.

СИНТАКСИС

arrayName.insert(index, value)

Пример:

Давайте добавим новое значение сразу после второго элемента массива. В настоящее время наш массив с балансом имеет три элемента 300, 200 и 100. Так что же это за индекс второго элемента массива со значением 200, если вы сказали 1.

Чтобы вставить новое значение сразу после индекса 1, вам нужно сослаться на индекс 2 в вашем методе вставки, например так:

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)

Теперь, чтобы проверить, было ли введено новое значение, введите имя массива и нажмите Enter на клавиатуре:

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)

ВЫВОД

array('i', [300,200,150,100])

удалять

С помощью этой операции вы можете удалить один элемент из массива по значению. Этот метод принимает только один аргумент, значение. После запуска этого метода элементы массива переупорядочиваются, а индексы переопределяются.

СИНТАКСИС

arrayName.remove(value)

пример

Давайте удалим значение 150 из массива. В настоящее время наш массив с балансом имеет четыре элемента 300, 200, 150 и 100. Таким образом, чтобы удалить 150 из массива, нам нужно только ввести 150 внутри аргумента метода. Просто, правда?

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
balance.remove(150)

Теперь, чтобы проверить, было ли значение удалено, введите имя массива и нажмите Enter на клавиатуре:

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
balance.remove(150)
print(balance)

ВЫВОД

 array('i', [300,200,100])

ПОИСК

С помощью этой операции вы можете искать элемент в массиве по его значению. Этот метод принимает только один аргумент, значение. Это неразрушающий метод, который означает, что он не влияет на значения массива.

СИНТАКСИС

arrayName.index(value)

Пример:

Давайте искать значение 150 в массиве. В настоящее время наш массив с балансом имеет четыре элемента 300, 200, 150 и 100. Таким образом, для поиска 150 в массиве нам нужно всего лишь ввести 150 внутри аргумента метода. Это довольно просто. Этот метод возвращает индекс искомого значения.

import array
balance = array.array('i', [300,200,150,100])
print(balance.index(150))

ВЫВОД

2

ОБНОВИТЬ

Эта операция очень похожа на метод вставки, за исключением того, что она заменит существующее значение по данному индексу. Это означает, что просто назначит новое значение по данному индексу. Этот метод ожидает два аргумента index и value.

Синтаксис

arrayName.udpate(index, value)

пример

Предположим, что в нашем массиве есть четыре элемента 300, 200, 150 и 100, и мы хотим заменить 150 на 145. Так, каков индекс 150?

Слава, если вы сказали 2.

Чтобы заменить 150 с индексом 2, вам нужно сослаться на индекс 2 с помощью простого оператора присваивания, например:

import array
balance = array.array('i', [300,200,150,100])
balance[2] = 145

Теперь, чтобы проверить, обновлено ли значение, введите имя массива и нажмите Enter на клавиатуре:

import array
balance = array.array('i', [300,200,150,100])
balance[2] = 145
print(balance)

ВЫВОД

array('i', [300,200,145,100])

Траверса

Вы можете пройти массив python, используя циклы, как этот:

import array
balance = array.array('i', [300,200,100])
for x in balance:
	print(x)

ВЫВОД

300
200
100

Создание массива в C ++

Язык C ++ более гибок, чем Python, когда дело доходит до создания массивов. Вы можете создавать массивы тремя способами, упомянутыми выше.

Следующий код иллюстрирует, как вы можете создать целочисленный массив в C ++ для хранения баланса счета:

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  for (int i = 0; i < 3; i++)
    {
      cout << "value of i: " << balance[i] << endl;
    }
  return 0;
}

Способы объявить массив в C ++

Вы можете объявить массив в трех вариантах синтаксиса. Какой из них подходит вашей программе; этот выбор основан на требованиях вашей программы.

Декларация по размеру

Синтаксис

dataType arrayName[arraySize];

пример

int balance[3];

Только элементы массива инициализации декларации

Синтаксис

dataType arrayName[] = {array, items};

пример

int balance[] = { 300, 200, 100 };

Объявление по размеру и элементам массива инициализации

Синтаксис

dataType arrayName[arraySize] = {array, items};

пример

int balance[3] = { 300, 200, 100 };

Как получить доступ к определенному значению массива?

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

Синтаксис

arrayName[indexNum]

пример

balance[1]

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

Доступ к элементу массива

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

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  cout << balance[1];

  return 0;
}

Вывод

200

Операции с массивами в C ++

В отличие от Python, в C ++ вы должны самостоятельно программировать логику для выполнения операций вставки, удаления, поиска, обновления и перемещения по массивам C ++.

Вставить

Логика операции вставки выглядит следующим образом:

  • цикл по элементам массива
  • сдвинуть их к большему индексу
  • добавить новый элемент массива по указанному индексу

В следующем примере у нас есть 5 элементов в массиве balance, и мы хотим добавить новый элемент сразу после значения 200. Это означает, что мы должны сдвинуть все элементы после 200 в больший индекс, а затем вставить наш новый значение 150.

#include <iostream>
#include <stdio.h>

main() {
   int pos = 2;
   int size = 4;
   int balance[] = {300,200,100,50,0};
   
   printf("BEFORE INCREMENT: \n");
   for(int i = 0; i<5; i++) {
      printf("%d\n",balance[i]);
   }

   /* FOR SHIFTING ITEMS TO A GREATER INDEX */
   for(int i = size; i >= pos; i--) {
       balance[i+1]=balance[i];
   }

   /* FOR INSERTING VALUE AT OUR DESIRED INDEX */   
   balance[pos] = 150;
   
   printf("AFTER INCREMENT: \n");
   

   /* FOR PRINTING THE NEW ARRAY */   
   for(int i = 0; i<6; i++) {
      printf("%d\n",balance[i]);
   }
}

Вывод

BEFORE INCREMENT
300
200
100
50
0
AFTERINCREMENT
300
200
150
100
50
0

Операции с массивами в Java

Давайте создадим программирование на Java, в этой программе мы примем размер и значение элементов массива от пользователя.

import java.util.Scanner;

public class AddElements {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        System.out.println("Enter the size of the array");
        int n=sc.nextInt();

        int arr[]=new int[n];

        System.out.println("Enter Elements in the array");
        for(int i=0;i<n;i++)
        {
            arr[i]=sc.nextInt();
        }
        System.out.println("Elements in the array");
        for(int j=0;j<n;j++)
        {
            System.out.print(arr[j]+" ");
        }
    }
}

Вывод:-

Enter the size of the array

5
Enter Elements in the array

1
2
3
4
5
Elements in the array
1 2 3 4 5 

Изменить элемент в массиве: —

Обновить элемент по заданному индексу.

Программа на Java для того, как изменить элементы в массиве

import java.util.Scanner;

public class ModifyElement {
    public static void main(String[] args) {
        int arr[]={1,2,3,4,5};
        int length= arr.length;
        Scanner sc=new Scanner(System.in);

        System.out.println("Array Elements Before modify");
        for(int i=0;i<length;i++)
        {
            System.out.print(arr[i]+" ");
        }


        System.out.println("\nEnter the position where you want to change in an array");
        int pos=sc.nextInt();

        System.out.println("Enter the value");
        int val=sc.nextInt();

        arr[pos]=val;

        System.out.println("Array Elements After modify");
        for(int j=0;j<length;j++)
        {
            System.out.print(arr[j]+" ");
        }
    }
}

Вывод:-

Array Elements Before modify
1 2 3 4 5 
Enter the position where you want to change in an array

2
Enter the value
8
Array Elements After modify
1 2 8 4 5 

Элемент доступа в массиве: —

Распечатать все элементы массива.

Программа на Java, как пройти в массиве

public class AccessElements {
    public static void main(String[] args) {
        int arr[]={1,2,3,4,5};
        int length= arr.length;

        System.out.println("Array Elements are:-");
        for(int i=0;i<length;i++)
        {
            System.out.print(arr[i]+" ");
        }

    }
}

Вывод:-

Array Elements are:-
1 2 3 4 5 

Резюме:

  • Массив — это структура данных для хранения нескольких элементов данных с одинаковым типом данных.
  • Идентификатор, тип данных, длина массива, элементы и индекс являются основными частями массива
  • Использовать индекс для обработки значений элементов массива
  • Массивы имеют отличную поддержку для сохранения типа данных нетронутыми
  • В большинстве языков массив создается путем указания идентификатора, типа данных и включаемых элементов.
  • Массивы лучше всего подходят для обработки большого количества значений, а также для быстрой сортировки и поиска.
  • В Python есть модули и встроенные методы для выполнения базовых операций с массивами, таких как вставка, удаление, поиск, обновление и перемещение.
  • C ++ требует определения программ для базовых операций с массивами, таких как вставка, удаление, обновление поиска и обход