Array i datastruktur (Operasjoner)
โก Smart oppsummering
Arrayer i datastruktur lagrer flere elementer av samme datatype pรฅ sammenhengende minneplasseringer, som hver kan nรฅs via en indeks. Denne veiledningen forklarer konseptet, hvorfor arrayer er viktige, og hvordan man oppretter og opererer pรฅ dem i Python, C++og Java med eksempler.

Hva er Array i datastruktur?
An matrise er en datastruktur for lagring av mer enn ett dataelement av en lignende datatype. Elementene i en matrise er allokert til tilstรธtende minneplasseringer, og disse plasseringene kalles elementer av matrisen. Det totale antallet elementer i en matrise er dens lengde.
Hvert element nรฅs via sin posisjon, og denne referansen kalles indeks or senket.
Konsept av Array
Konseptdiagram av matriser
Diagrammet ovenfor illustrerer at:
- En matrise er en beholder med elementer.
- Elementer har en spesifikk verdi og datatype, for eksempel ยซABCยป, SANN eller USANN.
- Hvert element har sin egen indeks, som brukes for รฅ fรฅ tilgang til det.
OBS:
- Elementer lagres pรฅ sammenhengende minneplasseringer.
- En indeks er alltid mindre enn det totale antallet matriseelementer.
- Enhver variabel deklarert som en array kan lagre flere verdier.
- Nesten alle sprรฅk deler det samme konseptet med arrayer, men er forskjellige i hvordan de deklarerer og initialiserer dem.
- Tre deler forblir felles pรฅ tvers av alle initialiseringer: arraynavnet, elementene og datatypen til elementene.
Fรธlgende diagram viser syntaksen for รฅ deklarere en rekke i Python og C++, som viser at konseptet forblir det samme selv om syntaksen varierer noe mellom sprรฅk.
Forstรฅ syntaks for matriser
- Array navn: nรธdvendig for enkel referanse til samlingen av elementer.
- Data-type: nรธdvendig for typekontroll og dataintegritet.
- elementer: dataverdiene som finnes i matrisen.
Hvorfor trenger vi arrayer?
- Arrayer er ideelle for รฅ lagre flere verdier i en enkelt variabel.
- De bearbeider mange verdier enkelt og raskt.
- Det er enklere รฅ sortere og sรธke etter verdier med arrayer.
Opprette en matrise i Python
In Python, arrayer er forskjellige fra lister: en liste kan inneholde elementer av forskjellige datatyper, mens en array bare kan inneholde elementer av samme datatype. Python har en egen modul for hรฅndtering av arrayer, kalt array, som du mรฅ importere fรธr du bruker den.
OBS: Matrisen mรฅ inneholde reelle tall som heltall og flyttall; strenger er ikke tillatt.
Fรธlgende kode oppretter en heltallsmatrise i Python for รฅ lagre kontosaldoer:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Mรฅter รฅ erklรฆre en matrise pรฅ Python
Du kan erklรฆre en matrise i Python mens du initialiserer den ved hjelp av fรธlgende syntaks:
arrayName = array.array(typecode, [array_items])
Syntaks for Array i Python
- Identifier: angi et navn slik du vanligvis gjรธr for variabler.
- Moduler: Python har en spesiell modul kalt ยซarrayยป som du mรฅ importere fรธrst.
- Metode: Array-modulen har en metode for รฅ initialisere arrayet, ved รฅ ta to argumenter โ typekode og elementer.
- Typekode: angi datatypen ved hjelp av de tilgjengelige typekodene (se tabellen nedenfor).
- elementer: spesifiser arrayelementene i hakeparenteser, for eksempel [130, 450, 103].
Tabellen nedenfor viser typekodene som er tilgjengelige for stรธttede datatyper.
| Skriv inn kode | C Type | Python typen | Minimumsstรธrrelse (byte) |
|---|---|---|---|
| 'b' | signert rรธye | int | 1 |
| 'B' | usignert rรธye | int | 1 |
| 'du' | Py_UNICODE | Unicode-karakter | 2 |
| 'H' | signert kort | int | 2 |
| 'H' | usignert kort | int | 2 |
| 'Jeg' | signert int | int | 2 |
| 'JEG' | usignert int | int | 2 |
| 'l' | signert lang | int | 4 |
| 'L' | usignert lang | int | 4 |
| 'F' | flyte | flyte | 4 |
| 'd' | dobbelt | flyte | 8 |
Hvordan fรฅ tilgang til en spesifikk arrayverdi?
Du kan fรฅ tilgang til et hvilket som helst array-element ved รฅ bruke indeksen.
Syntaks:
arrayName[indexNum]
Eksempel:
balance[1]
Fรฅ tilgang til et matriseelement
Her fikk vi tilgang til den andre verdien i arrayet ved hjelp av indeks 1. Utdataene er 200, som er den andre verdien i balansearrayet.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Utgang:
200
Array Operasjoner i Python
Ocuco Python Array-modulen tilbyr separate funksjoner for array-operasjoner. Dette er destruktive metoder, som betyr at modifikasjonen lagres i array-variabelen.
innfelt
Denne operasjonen setter inn ett eller flere elementer i en matrise i begynnelsen, slutten eller en gitt indeks. Den forventer to argumenter: indeks og verdi.
arrayName.insert(index, value)
Eksempel: For รฅ sette inn en ny verdi rett etter indeks 1 (verdien 200), referer til indeks 2 i insert-metoden.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Utgang:
array('i', [300, 200, 150, 100])
Delete
Denne operasjonen sletter ett element fra en matrise etter verdi, og godtar et enkelt argument. Etter at den kjรธrer, blir elementene omorganisert og indeksene tilordnet pรฅ nytt.
arrayName.remove(value)
Eksempel:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Utgang:
array('i', [300, 200, 100])
Sรธk
Denne operasjonen sรธker etter et element etter verdi og returnerer indeksen. Det er en ikke-destruktiv metode, sรฅ den endrer ikke arrayverdiene.
arrayName.index(value)
Eksempel:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Utgang:
2
Oppdater
Oppdatering erstatter den eksisterende verdien ved en gitt indeks ved hjelp av en enkel tildelingsoperator.Python arrayer har ikke en update() metode.)
arrayName[index] = value
Eksempel: For รฅ erstatte 150 (ved indeks 2) med 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Utgang:
array('i', [300, 200, 145, 100])
Traverse
Du kan krysse en Python array ved hjelp av en lรธkke:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Utgang:
300
200
100
Opprette en matrise i C++
C++ er mer fleksibel enn Python nรฅr du oppretter arrayer. Du kan opprette C++ arrays pรฅ tre mรฅter. Fรธlgende kode oppretter en heltallsmatrise i C++ for รฅ lagre kontosaldoer:
#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;
}
Mรฅter รฅ erklรฆre en matrise pรฅ C++
Du kan deklarere en array pรฅ tre mรฅter, avhengig av programmets krav.
Erklรฆring etter stรธrrelse:
dataType arrayName[arraySize]; // e.g. int balance[3];
Deklarasjon kun med arrayelementer:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Erklรฆring etter stรธrrelse og varer:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Slik fรฅr du tilgang til en spesifikk arrayverdi i C++?
Fรฅ tilgang til et matriseelement
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Utgang:
200
Array Operasjoner i C++
I motsetning til Pythoni C++ Du mรฅ programmere logikken selv for innsettings-, slettings-, sรธke-, oppdaterings- og traverseringsoperasjoner.
innfelt
Innsettingslogikken er: gรฅ gjennom arrayelementene i en lรธkke, flytt dem til en stรธrre indeks, og legg deretter til et nytt element ved den gitte indeksen. Eksemplet nedenfor har fem elementer og setter inn 150 rett etter verdien 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 Operasjoner i Java
La oss lage et program i Java som aksepterer stรธrrelsen og verdiene til array-elementene fra brukeren.
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] + " ");
}
}
}
Endre et element i en Java Array
Oppdater et element etter indeksen.
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] + " ");
}
}
}
Tilgangselementer i en Java Array
Skriv ut alle arrayelementene ved รฅ traversere arrayet.
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] + " ");
}
}
}





