Matrice în structura de date (Operațiuni)
⚡ Rezumat inteligent
În structura datelor, un tablou stochează mai multe elemente de același tip de date în locații de memorie contigue, fiecare accesibil printr-un index. Acest tutorial explică conceptul, de ce sunt importante tablourile și cum se creează și se operează cu ele. Python, C++ și Java cu exemple.
Ce este Array în Data Structure?
An mulțime este o structură de date pentru stocarea mai multor elemente de date de un tip de date similar. Elementele unui tablou sunt alocate la locații de memorie adiacente, iar aceste locații sunt numite element al tabloului. Numărul total de elemente dintr-un tablou este lungime.
Fiecare element este accesat prin poziția sa, iar această referință se numește index or indicele.
Conceptul de matrice
Diagrama conceptuală a tablourilor
Diagrama de mai sus ilustrează faptul că:
- Un tablou este un container de elemente.
- Elementele au o valoare și un tip de date specifice, cum ar fi „ABC”, TRUE sau FALSE.
- Fiecare element are propriul index, care este folosit pentru accesarea acestuia.
Notă:
- Elementele sunt stocate în locații de memorie adiacente.
- Un index este întotdeauna mai mic decât numărul total de elemente ale matricei.
- Orice variabilă declarată ca o matrice poate stoca mai multe valori.
- Aproape toate limbajele de programare au același concept de tablouri, dar diferă prin modul în care le declară și le inițializează.
- Trei părți rămân comune pentru toate inițializările: numele matricei, elementele și tipul de date al elementelor.
Următoarea diagramă prezintă sintaxa pentru declararea unui matrice în Python și C++, demonstrând că conceptul rămâne același chiar dacă sintaxa variază ușor între limbi.
Înțelegeți sintaxa matricelor
- Nume matrice: necesar pentru o referire ușoară la colecția de elemente.
- Tipul de date: necesar pentru verificarea tipului și a integrității datelor.
- elemente: valorile datelor prezente în matrice.
De ce avem nevoie de matrice?
- Tablourile sunt ideale pentru stocarea mai multor valori într-o singură variabilă.
- Acestea procesează multe valori ușor și rapid.
- Sortarea și căutarea valorilor sunt mai ușoare cu ajutorul tablourilor.
Crearea unui Array în Python
In Python, tablourile diferă de liste: o listă poate conține elemente de tipuri de date diferite, în timp ce un tablou poate conține doar elemente de același tip de date. Python are un modul separat pentru gestionarea tablourilor, numit array, pe care trebuie să îl importați înainte de a-l utiliza.
Notă: Tabloul trebuie să conțină numere reale, cum ar fi numere întregi și numere cu număr în virgulă; șirurile de caractere nu sunt permise.
Următorul cod creează o matrice de numere întregi în Python pentru a stoca soldurile conturilor:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Modalități de a declara o matrice în Python
Puteți declara o matrice în Python în timp ce îl inițializezi folosind următoarea sintaxă:
arrayName = array.array(typecode, [array_items])
Sintaxa Array în Python
- Identificator: specificați un nume așa cum faceți de obicei pentru variabile.
- Modul: Python are un modul special numit „array” pe care trebuie să îl importați mai întâi.
- Metodă: Modulul array are o metodă de inițializare a array-ului, primind două argumente — typecode și elemente.
- Cod tip: specificați tipul de date folosind codurile de tip disponibile (consultați tabelul de mai jos).
- elemente: specificați elementele matricei între paranteze pătrate, de exemplu [130, 450, 103].
Tabelul de mai jos listează codurile de tip disponibile pentru tipurile de date acceptate.
| Codul de tip | C Tip | Python Tip | Dimensiune minimă (octeți) |
|---|---|---|---|
| 'b' | semnat char | int | 1 |
| „B” | char nesemnat | int | 1 |
| 'tu' | Py_UNICODE | Caracter Unicode | 2 |
| 'h' | semnat scurt | int | 2 |
| „H” | scurt nesemnat | int | 2 |
| 'I' | semnat int | int | 2 |
| 'I' | nesemnat int | int | 2 |
| 'l' | semnat lung | int | 4 |
| „L” | nesemnat mult | int | 4 |
| 'F' | pluti | pluti | 4 |
| 'd' | dubla | pluti | 8 |
Cum se accesează o anumită valoare a unui array?
Puteți accesa orice element al unui array folosind indexul său.
Sintaxă:
arrayName[indexNum]
Exemplu:
balance[1]
Accesați un element de matrice
Aici, am accesat a doua valoare a matricei folosind indexul 1. Rezultatul este 200, care este a doua valoare a matricei de echilibru.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
ieșire:
200
Mulțime Operațiuni în Python
Python Modulul array oferă funcții separate pentru operațiunile cu array-uri. Acestea sunt metode distructive, ceea ce înseamnă că modificarea este salvată în variabila array.
Insera
Această operație inserează unul sau mai multe elemente într-un array la începutul, sfârșitul sau orice index dat. Așteaptă două argumente: index și valoare.
arrayName.insert(index, value)
Exemplu: Pentru a insera o nouă valoare imediat după indexul 1 (valoarea 200), faceți referire la indexul 2 în metoda de inserare.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
ieșire:
array('i', [300, 200, 150, 100])
Șterge
Această operație șterge un element dintr-un array după valoare, acceptând un singur argument. După executare, elementele sunt rearanjate și indexurile sunt reatribuite.
arrayName.remove(value)
Exemplu:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
ieșire:
array('i', [300, 200, 100])
Căutare
Această operație caută un element după valoare și returnează indexul său. Este o metodă nedistructivă, deci nu modifică valorile matricei.
arrayName.index(value)
Exemplu:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
ieșire:
2
Actualizează
Actualizarea înlocuiește valoarea existentă la un index dat folosind un operator de atribuire simplu. (Python matricele nu au un update() metodă.)
arrayName[index] = value
Exemplu: Pentru a înlocui 150 (la indexul 2) cu 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
ieșire:
array('i', [300, 200, 145, 100])
Traverse
Puteți traversa a Python matrice folosind o buclă:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
ieșire:
300
200
100
Crearea unui Array în C++
C++ este mai flexibil decât Python atunci când creați matrice. Puteți crea C++ matrice în trei moduri. Următorul cod creează o matrice de numere întregi în C++ pentru a stoca soldurile conturilor:
#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;
}
Modalități de a declara o matrice în C++
Puteți declara un array în trei moduri, în funcție de cerințele programului.
Declarație după mărime:
dataType arrayName[arraySize]; // e.g. int balance[3];
Declarație doar cu elemente de matrice:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Declarație pe mărime și articole:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Cum se accesează o anumită valoare a matricei în C++?
Accesarea unui element de matrice
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
ieșire:
200
Mulțime Operațiuni în C++
Spre deosebire de Python, În C++ Trebuie să programați singur logica pentru operațiunile de inserare, ștergere, căutare, actualizare și traversare.
Insera
Logica de inserare este: parcurgerea elementelor din matrice, mutarea lor la un index mai mare, apoi adăugarea unui element nou la indexul dat. Exemplul de mai jos are cinci elemente și inserează 150 imediat după valoarea 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]);
}
}
Mulțime Operațiuni în Java
Să creăm un program în Java care acceptă dimensiunea și valorile elementelor tabloului de la utilizator.
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] + " ");
}
}
}
Modificarea unui element într-un Java Mulțime
Actualizează un element după indexul său.
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] + " ");
}
}
}
Elemente de acces într-un Java Mulțime
Afișează toate elementele tabloului parcurgându-l.
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] + " ");
}
}
}






