Масив в структура от данни (Operaции)
⚡ Умно обобщение
Масивът в структурата от данни съхранява множество елементи от един и същи тип данни в съседни места в паметта, като всеки от тях е достъпен чрез индекс. Този урок обяснява концепцията, защо масивите са важни и как да се създават и работят с тях в... Python, C++, и Java с примери.
Какво е масив в структурата на данните?
An масив е структура от данни за съхраняване на повече от един елемент от подобен тип данни. Елементите на масив се разпределят в съседни места в паметта и тези места се наричат елементи на масива. Общият брой елементи в масива е неговият Дължината.
Достъпът до всеки елемент се осъществява чрез неговата позиция и тази препратка се нарича индекс or индекс.
Концепция за масив
Концептуална диаграма на масиви
Диаграмата по-горе илюстрира, че:
- Масивът е контейнер от елементи.
- Елементите имат специфична стойност и тип данни, като например „ABC“, TRUE или FALSE.
- Всеки елемент има свой собствен индекс, който се използва за достъп до него.
Забележка:
- Елементите се съхраняват в съседни места в паметта.
- Индексът винаги е по-малък от общия брой елементи на масива.
- Всяка променлива, декларирана като масив, може да съхранява множество стойности.
- Почти всички езици споделят една и съща концепция за масиви, но се различават по начина, по който ги декларират и инициализират.
- Три части остават общи за всички инициализации: името на масива, елементите и типа данни на елементите.
Следната диаграма показва синтаксиса за деклариране на масив в Python намлява C++, демонстрирайки, че концепцията остава същата, въпреки че синтаксисът се различава леко между езиците.
Разбиране на синтаксиса на масивите
- Име на масива: необходимо за лесно справяне с колекцията от елементи.
- Тип данни: необходими за проверка на типа и целостта на данните.
- елементи: стойностите на данните, присъстващи в масива.
Защо са ни необходими масиви?
- Масивите са идеални за съхраняване на множество стойности в една променлива.
- Те обработват много стойности лесно и бързо.
- Сортирането и търсенето на стойности е по-лесно с масиви.
Създаване на масив в Python
In PythonМасивите се различават от списъците: списъкът може да съдържа елементи от различни типове данни, докато масивът може да съдържа само елементи от един и същи тип данни. Python има отделен модул за обработка на масиви, наречен array, който трябва да импортирате, преди да го използвате.
Забележка: Масивът трябва да съдържа реални числа, като цели числа и числа с плаваща запетая; низове не са разрешени.
Следният код създава целочислен масив в Python за съхраняване на салда по сметки:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Начини за деклариране на масив в Python
Можете да декларирате масив в Python докато го инициализирате, използвайки следния синтаксис:
arrayName = array.array(typecode, [array_items])
Синтаксис на масив в Python
- идентификационен номер: задайте име, както обикновено правите за променливи.
- Модул: Python има специален модул, наречен „array“, който първо трябва да импортирате.
- Метод: Модулът array има метод за инициализиране на масива, приемащ два аргумента — typecode и elements.
- Код на типа: укажете типа данни, като използвате наличните типови кодове (вижте таблицата по-долу).
- елементи: посочете елементите на масива в квадратни скоби, например [130, 450, 103].
Таблицата по-долу изброява наличните типове кодове за поддържаните типове данни.
| Тип код | C тип | Python Тип | Минимален размер (байтове) |
|---|---|---|---|
| "б" | знак със знак | Int | 1 |
| „Б“ | неподписан char | Int | 1 |
| "ти" | Py_UNICODE | Unicode знак | 2 |
| "ч" | подписано кратко | Int | 2 |
| "H" | неподписано кратко | Int | 2 |
| "Аз" | подписан вътр | Int | 2 |
| "Аз" | неподписан int | Int | 2 |
| 'l' | подписано дълго | Int | 4 |
| „L“ | неподписано дълго | Int | 4 |
| "F" | поплавък | поплавък | 4 |
| 'д' | удвои | поплавък | 8 |
Как да получите достъп до конкретна стойност на масив?
Можете да получите достъп до всеки елемент от масива, използвайки неговия индекс.
Синтаксис:
arrayName[indexNum]
Пример:
balance[1]
Достъп до елемент на масив
Тук, достъпихме втората стойност на масива, използвайки индекс 1. Изходът е 200, което е втората стойност на масива balance.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Изход:
200
Array Operaции в Python
- Python Модулът array предоставя отделни функции за операции с масиви. Това са деструктивни методи, което означава, че модификацията се запазва в променливата на масива.
Поставете
Тази операция вмъква един или повече елементи в масив в началото, края или по даден индекс. Очаква два аргумента: индекс и стойност.
arrayName.insert(index, value)
Пример: За да вмъкнете нова стойност веднага след индекс 1 (стойността 200), обърнете се към индекс 2 в метода за вмъкване.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Изход:
array('i', [300, 200, 150, 100])
Изтрий
Тази операция изтрива един елемент от масив по стойност, приемайки един аргумент. След изпълнението ѝ, елементите се пренареждат и индексите се преназначават.
arrayName.remove(value)
Пример:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Изход:
array('i', [300, 200, 100])
Търсене
Тази операция търси елемент по стойност и връща неговия индекс. Това е недеструктивен метод, така че не променя стойностите на масива.
arrayName.index(value)
Пример:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Изход:
2
Актуализация
Актуализирането замества съществуващата стойност на даден индекс, използвайки прост оператор за присвояване.Python масивите нямат update() метод.)
arrayName[index] = value
Пример: За да замените 150 (на индекс 2) със 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Изход:
array('i', [300, 200, 145, 100])
Траверс
Можете да преминете през a Python масив с помощта на цикъл:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Изход:
300
200
100
Създаване на масив в C++
C++ е по-гъвкав от Python при създаване на масиви. Можете да създавате C++ масиви по три начина. Следният код създава целочислен масив в 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]; // e.g. int balance[3];
Декларация само с елементи от масив:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Декларация по размер и артикули:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Как да получите достъп до конкретна стойност на масив в C++?
Достъп до елемент на масив
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Изход:
200
Array Operaции в C++
За разлика от Pythonв C++ Трябва сами да програмирате логиката за операции по вмъкване, изтриване, търсене, актуализиране и преместване.
Поставете
Логиката на вмъкване е: преминаване през елементите на масива, преместването им към по-голям индекс и добавянето на нов елемент на дадения индекс. Примерът по-долу има пет елемента и вмъква 150 веднага след стойността 200.
#include <iostream>
#include <stdio.h>
main() {
int pos = 2;
int size = 4;
int balance[] = {300, 200, 100, 50, 0};
printf("BEFORE INSERT:\n");
for(int i = 0; i < 5; i++) {
printf("%d\n", balance[i]);
}
/* SHIFT ITEMS TO A GREATER INDEX */
for(int i = size; i >= pos; i--) {
balance[i+1] = balance[i];
}
/* INSERT VALUE AT THE DESIRED INDEX */
balance[pos] = 150;
printf("AFTER INSERT:\n");
for(int i = 0; i < 6; i++) {
printf("%d\n", balance[i]);
}
}
Array Operaции в 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] + " ");
}
}
}
Промяна на елемент в Java Array
Актуализиране на елемент по неговия индекс.
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 to change");
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] + " ");
}
}
}
Достъп до елементи в Java Array
Изведете всички елементи на масива, като го обходите.
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] + " ");
}
}
}






