Array i datastruktur: Hvad er arrays Operationer [Eksempler]

Hvad er Array i datastruktur?

An matrix er en datastruktur til lagring af mere end รฉt dataelement, der har en lignende datatype. Elementerne i et array er allokeret pรฅ tilstรธdende hukommelsesplaceringer. Disse hukommelsessteder kaldes elementer af det array. Det samlede antal elementer i et array kaldes lรฆngde.

Der er adgang til detaljerne for et array om dets position. Denne reference kaldes indeks or sรฆnket.

Begrebet Array

Konceptdiagram over arrays
Konceptdiagram over arrays

Ovenstรฅende diagram illustrerer, at:

  1. Et array er en beholder af elementer.
  2. Elementer har en specifik vรฆrdi og datatype, sรฅsom "ABC", TRUE eller FALSE osv.
  3. Hvert element har ogsรฅ sit eget indeks, som bruges til at fรฅ adgang til elementet.

Bemรฆrk:

  • Elementer gemmes pรฅ sammenhรฆngende hukommelsesplaceringer.
  • Et indeks er altid mindre end det samlede antal array-elementer.
  • Med hensyn til syntaks kan enhver variabel, der er erklรฆret som et array, gemme flere vรฆrdier.
  • Nรฆsten alle sprog har den samme forstรฅelse af arrays, men har forskellige mรฅder at deklarere og initialisere dem pรฅ.
  • Tre dele vil dog altid forblive fรฆlles i alle initialiseringer, dvs. matrixnavn, elementer og datatypen for elementer.

Det fรธlgende diagram illustrerer syntaksen for at erklรฆre en rรฆkke ind Python og C++ at vise, at forstรฅelsen forbliver den samme, selvom syntaksen kan variere lidt pรฅ forskellige sprog.

Forstรฅ syntaks af arrays

Forstรฅ syntaks af arrays
  • Array navn: nรธdvendigt for let reference til samlingen af โ€‹โ€‹elementer
  • Datatype: nรธdvendig for typekontrol og dataintegritet
  • elementer: disse er de datavรฆrdier, der findes i et array

Hvorfor har vi brug for arrays?

Her er nogle grunde til at bruge arrays i datastruktur:

  • Arrays er bedst til at gemme flere vรฆrdier i en enkelt variabel
  • Arrays er bedre til at behandle mange vรฆrdier nemt og hurtigt
  • Det er nemmere at sortere og sรธge i vรฆrdierne i arrays

Oprettelse af et array i Python

In Python, arrays er forskellige fra lister; lister kan have matrixelementer af datatyper, hvorimod matrixer kun kan have elementer af samme datatype.

Python har et separat modul til hรฅndtering af arrays kaldet array, som du skal importere, fรธr du begynder at arbejde pรฅ dem.

Bemรฆrk: Arrayet skal indeholde reelle tal som heltal og flydende, ingen strenge tilladt.

Fรธlgende kode illustrerer, hvordan du kan oprette et heltalsarray i python for at gemme kontosaldo:

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

Mรฅder at erklรฆre et array pรฅ Python

Du kan erklรฆre et array i Python mens du initialiserer den ved hjรฆlp af fรธlgende syntaks.

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

Fรธlgende billede forklarer syntaksen.

Syntaks for Array i Python

Syntaks for Array i Python

  1. Identifier: Angiv et navn som normalt, du gรธr for variabler
  2. Moduler: Python har et specielt modul til at skabe arrays, kaldet "array" - du skal importere det, fรธr du bruger det
  3. Metode: array-modulet har en metode til initialisering af arrayet. Det krรฆver to argumenter, typekode og elementer.
  4. Type kode: Angiv datatypen ved hjรฆlp af de tilgรฆngelige typekoder (se listen nedenfor)
  5. Elements: angiv matrixelementerne inden for firkantede parenteser, for eksempel [130,450,103]

Fรธlgende tabel illustrerer de tilgรฆngelige typekoder for understรธttede datatyper:

Skriv kode C Type Python Type Minimumsstรธrrelse i bytes
'c' char karakter 1
'B' usigneret char int 1
'b' underskrevet char int 1
'du' Py_UNICODE Unicode-tegn 2
'h' underskrevet kort int 2
'H' usigneret kort int 2
'jeg' underskrevet int int 2
'JEG' usigneret int lang 2
'l' underskrevet lang int 4
'L' usigneret lรฆnge lang 4
'F' flyde flyde 4
'd' fordoble flyde 8

Hvordan fรฅr man adgang til en bestemt matrixvรฆrdi?

Du kan fรฅ adgang til ethvert array-element ved at bruge dets indeks.

Syntaks

arrayName[indexNum]

Eksempel:

balance[1]

Det fรธlgende billede illustrerer det grundlรฆggende koncept for at fรฅ adgang til array-elementer ved deres indeks.

Fรฅ adgang til et Array Element

Fรฅ adgang til et Array Element

Her har vi fรฅet adgang til den anden vรฆrdi af arrayet ved hjรฆlp af dets indeks, som er 1. Outputtet af dette vil vรฆre 200, hvilket grundlรฆggende er den anden vรฆrdi af det balancerede array.

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

PRODUKTION

200

Array Operationer

Array-modulet af Python har separate funktioner til at udfรธre array-operationer. Dette er en destruktiv metode til at arbejde med arrays, hvilket betyder, at รฆndringen vil blive gemt i array-variablen.

indsatte

Med denne handling kan du indsรฆtte et eller flere elementer i et array i begyndelsen, slutningen eller et hvilket som helst givet indeks af arrayet. Denne metode forventer to argumenter indeks og vรฆrdi.

Syntaks

arrayName.insert(index, value)

Eksempel:

Lad os tilfรธje en ny vรฆrdi lige efter det andet element i arrayet. I รธjeblikket har vores saldoarray tre elementer 300, 200 og 100. Sรฅ hvad er indekset for det andet matrixelement med en vรฆrdi pรฅ 200, hvis du sagde 1.

For at indsรฆtte den nye vรฆrdi lige "efter" indeks 1, skal du referere til indeks 2 i din indsรฆttelsesmetode, sรฅdan her:

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

For nu at kontrollere, om den nye vรฆrdi er blevet indsat, skal du indtaste array-navnet og trykke pรฅ Enter pรฅ tastaturet:

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

PRODUKTION

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

Slette

Med denne handling kan du slette รฉt element fra et array efter vรฆrdi. Denne metode accepterer kun รฉt argument, vรฆrdi. Efter at have kรธrt denne metode, omarrangeres matrixelementerne, og indekserne tildeles igen.

Syntaks

arrayName.remove(value)

Eksempel:

Lad os fjerne vรฆrdien af โ€‹โ€‹150 fra arrayet. I รธjeblikket har vores balancearray fire elementer 300, 200, 150 og 100. Sรฅ for at fjerne 150 fra arrayet skal vi kun skrive 150 inde i metodeargumentet. Simpelt, ikke?

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

For nu at kontrollere, om vรฆrdien er blevet slettet, skal du indtaste array-navnet og trykke pรฅ Enter pรฅ tastaturet:

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

PRODUKTION

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

Sร˜G

Med denne handling kan du sรธge efter et element i et array baseret pรฅ dets vรฆrdi. Denne metode accepterer kun รฉt argument, vรฆrdi. Dette er en ikke-destruktiv metode, hvilket betyder, at den ikke pรฅvirker array-vรฆrdierne.

Syntaks

arrayName.index(value)

Eksempel:

Lad os sรธge efter vรฆrdien af โ€‹โ€‹150 i arrayet. I รธjeblikket har vores balancearray fire elementer 300, 200, 150 og 100. Sรฅ for at sรธge 150 i arrayet skal vi kun skrive 150 inde i metodeargumentet. Det er ret nemt. Denne metode returnerer indekset for den sรธgte vรฆrdi.

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

PRODUKTION

2

OPDATER

Denne operation er ret lig indsรฆttelsesmetoden, bortset fra at den erstatter den eksisterende vรฆrdi ved det givne indeks. Dette betyder blot at tildele en ny vรฆrdi ved det givne indeks. Denne metode forventer to argumenter indeks og vรฆrdi.

Syntaks

arrayName.udpate(index, value)

Eksempel:

Antag, at vores array har fire elementer 300, 200, 150 og 100, og vi รธnsker at erstatte 150 med 145. Sรฅ hvad er indekset 150?

Tak, hvis du sagde 2.

For at erstatte 150, der har indeks 2, skal du referere til indeks 2 ved at bruge en simpel tildelingsoperator, som denne:

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

For nu at kontrollere, om vรฆrdien er blevet opdateret, skal du indtaste array-navnet og trykke pรฅ Enter pรฅ tastaturet:

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

PRODUKTION

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

Traverse

Du kan krydse et python-array ved at bruge slรธjfer, som denne:

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

PRODUKTION

300
200
100

Oprettelse af et array i C++

C++ Sprog er mere fleksibel end Python nรฅr det kommer til at skabe arrays. Du kan oprette C++ arrays pรฅ tre mรฅder nรฆvnt forud.

Fรธlgende kode illustrerer, hvordan du kan oprette et heltalsarray i C++ for at gemme kontosaldo:

#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รฅder at erklรฆre et array pรฅ C++

Du kan erklรฆre et array i tre syntaksvarianter. Hvilken passer til dit program; dette valg er baseret pรฅ dine programkrav.

Deklaration efter stรธrrelse

Syntaks

dataType arrayName[arraySize];

Eksempel:

int balance[3];

Kun erklรฆringsinitialisering Array-elementer

Syntaks

dataType arrayName[] = {array, items};

Eksempel:

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

Erklรฆring efter stรธrrelse og initialiseringsarray-elementer

Syntaks

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

Eksempel:

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

Hvordan fรฅr man adgang til en bestemt matrixvรฆrdi?

Du kan fรฅ adgang til ethvert array-element ved at bruge dets indeks.

Syntaks

arrayName[indexNum]

Eksempel:

balance[1]

Det fรธlgende billede illustrerer det grundlรฆggende koncept for at fรฅ adgang til array-elementer ved deres indeks.

Adgang til et array-element

Adgang til et array-element

Her har vi fรฅet adgang til den anden vรฆrdi af arrayet ved hjรฆlp af dets indeks, som er 1. Outputtet af dette vil vรฆre 200, hvilket grundlรฆggende er den anden vรฆrdi af balance array.

#include <iostream>
using namespace std;

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

  return 0;
}

Produktion

200

Array Operationer i C++

I modsรฆtning til Pythoni C++ du skal selv programmere logikken til at udfรธre indsรฆttelse, sletning, sรธgeopdatering og gennemlรธbsoperationer pรฅ C++ arrays.

indsatte

Logikken for indsรฆttelsesoperationen gรฅr som fรธlger:

  • slรธjfe gennem array-elementerne
  • flytte dem til et stรธrre indeks
  • tilfรธje et nyt array-element ved et givet indeks

I det fรธlgende eksempel har vi 5 elementer i saldoarrayet, og vi vil tilfรธje en ny post lige efter vรฆrdien 200. Det betyder, at vi skal flytte alle posterne efter 200 til et stรธrre indeks og derefter indsรฆtte vores nye vรฆrdi af 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]);
   }
}

Produktion

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

Array Operationer i Java

Lad os skabe en programmering i Java, heri array-program i Java vi accepterer stรธrrelsen og vรฆrdien af โ€‹โ€‹array-elementerne fra brugeren.

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]+" ");
        }
    }
}

Produktion:-

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 

Rediger element i array:-

Opdater et element ved det givne indeks.

Program i Java for, hvordan man รฆndrer elementer i et 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 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]+" ");
        }
    }
}

Produktion:-

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 

Adgangselement i Array:-

Udskriv alle array-elementer.

Program i Java for, hvordan man krydser i 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]+" ");
        }

    }
}

Produktion:-

Array Elements are:-
1 2 3 4 5 

Resumรฉ

  • Et array er en datastruktur til lagring af flere dataelementer, der har en lignende datatype
  • Identifikator, datatype, matrixlรฆngde, elementer og indeks er hoveddelene af en matrix
  • Brug indekset til at behandle vรฆrdierne af array-elementer
  • Arrays har fremragende stรธtte til at holde datatypen intakt
  • Pรฅ de fleste sprog oprettes et array ved at angive en identifikator, datatype og elementer, der skal inkluderes
  • Arrays er bedst til at behandle et stort antal vรฆrdier og til hurtig sortering og sรธgning
  • Python har moduler og indbyggede metoder til at udfรธre grundlรฆggende array-operationer som at indsรฆtte, slette, sรธge, opdatere og gennemlรธbe
  • C++ behov for at definere programmer til grundlรฆggende array-operationer som indsรฆttelse, sletning, sรธgeopdatering og traversering

Opsummer dette indlรฆg med: