Array i datastruktur: Vad är, Arrayer Operationer [Exempel]

Vad är Array i datastruktur?

An array är en datastruktur för att lagra mer än ett dataobjekt som har en liknande datatyp. Objekten i en array tilldelas vid intilliggande minnesplatser. Dessa minnesplatser kallas element av den uppsättningen. Det totala antalet element i en array kallas längd.

Detaljerna för en array nås om dess position. Denna referens kallas index or index.

Begreppet Array

Konceptdiagram av matriser
Konceptdiagram av matriser

Diagrammet ovan illustrerar att:

  1. En array är en behållare med element.
  2. Element har ett specifikt värde och datatyp, som "ABC", TRUE eller FALSE, etc.
  3. Varje element har också sitt eget index, som används för att komma åt elementet.

Obs:

  • Element lagras på sammanhängande minnesplatser.
  • Ett index är alltid mindre än det totala antalet matrisobjekt.
  • När det gäller syntax kan varje variabel som deklareras som en array lagra flera värden.
  • Nästan alla språk har samma förståelse av arrayer men har olika sätt att deklarera och initiera dem.
  • Tre delar kommer dock alltid att förbli gemensamma i alla initialiseringar, dvs arraynamn, element och datatypen för element.

Följande diagram illustrerar syntaxen för att deklarera en array i Python och C++ att visa att förståelsen förblir densamma även om syntaxen kan variera något på olika språk.

Förstå syntax för arrayer

Förstå syntax för arrayer
  • Arraynamn: nödvändig för enkel referens till samlingen av element
  • Data typ: nödvändig för typkontroll och dataintegritet
  • element: dessa är de datavärden som finns i en array

Varför behöver vi arrayer?

Här är några anledningar till att använda arrayer i datastruktur:

  • Matriser är bäst för att lagra flera värden i en enda variabel
  • Arrayer är bättre på att bearbeta många värden enkelt och snabbt
  • Det är lättare att sortera och söka efter värden i arrayer

Skapa en Array i Python

In Python, matriser skiljer sig från listor; listor kan ha arrayobjekt av datatyper, medan arrayer bara kan ha objekt av samma datatyp.

Python har en separat modul för att hantera arrayer som kallas array, som du måste importera innan du börjar arbeta med dem.

Obs: Matrisen måste innehålla reella tal som heltal och flytande tal, inga strängar tillåtna.

Följande kod illustrerar hur du kan skapa en heltalsmatris i python för att lagra kontosaldo:

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

Sätt att deklarera en array i Python

Du kan deklarera en array i Python medan du initierar den med följande syntax.

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

Följande bild förklarar syntaxen.

Syntax för Array i Python

Syntax för Array i Python

  1. Identifiera: ange ett namn som vanligt, du gör för variabler
  2. Modulerna: Python har en speciell modul för att skapa arrayer, kallad "array" - du måste importera den innan du använder den
  3. Metod: arraymodulen har en metod för att initiera arrayen. Det krävs två argument, typkod och element.
  4. kod: ange datatypen med de tillgängliga typkoderna (se listan nedan)
  5. Elements: ange arrayelementen inom hakparenteserna, till exempel [130,450,103]

Följande tabell illustrerar de typkoder som är tillgängliga för datatyper som stöds:

Skriv kod C-typ Python Typ Minsta storlek i byte
'c' röding karaktär 1
'B' osignerad röding int 1
'b' signerad röding int 1
'du' Py_UNICODE Unicode-karaktär 2
'h' undertecknad kort int 2
'H' osignerad kort int 2
'I' signerad int int 2
'I' osignerad int lång 2
'L' lång undertecknad int 4
'L' osignerad lång lång 4
'F' flyta flyta 4
'd' dubbla flyta 8

Hur får man tillgång till ett specifikt arrayvärde?

Du kan komma åt vilket arrayobjekt som helst genom att använda dess index.

syntax

arrayName[indexNum]

Exempel:

balance[1]

Följande bild illustrerar det grundläggande konceptet för att komma åt matrisobjekt genom deras index.

Få åtkomst till ett Array-element

Få åtkomst till ett Array-element

Här har vi nått det andra värdet för arrayen med hjälp av dess index, som är 1. Utdata från detta kommer att vara 200, vilket i princip är det andra värdet på den balanserade arrayen.

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

PRODUKTION

200

array Operationer

Arraymodulen för Python har separata funktioner för att utföra matrisoperationer. Detta är en destruktiv metod för att arbeta med arrayer, vilket innebär att ändringen kommer att sparas i arrayvariabeln.

Insert

Med den här operationen kan du infoga ett eller flera objekt i en array i början, slutet eller ett givet index av arrayen. Denna metod förväntar sig två argument index och värde.

syntax

arrayName.insert(index, value)

Exempel:

Låt oss lägga till ett nytt värde direkt efter det andra objektet i arrayen. För närvarande har vår saldomatris tre poster 300, 200 och 100. Så vad är indexet för den andra matrisposten med värdet 200 om du sa 1.

För att infoga det nya värdet direkt "efter" index 1, måste du referera till index 2 i din infogningsmetod, så här:

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

Nu, för att verifiera om det nya värdet har infogats, skriv in arraynamnet och tryck på Enter på tangentbordet:

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

PRODUKTION

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

Radera

Med den här operationen kan du ta bort ett objekt från en matris efter värde. Denna metod accepterar endast ett argument, värde. Efter att ha kört den här metoden omarrangeras arrayobjekten och indexen tilldelas om.

syntax

arrayName.remove(value)

Exempel:

Låt oss ta bort värdet 150 från arrayen. För närvarande har vår balansmatris fyra poster 300, 200, 150 och 100. Så för att ta bort 150 från matrisen behöver vi bara skriva 150 i metodargumentet. Enkelt, eller hur?

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

Nu, för att verifiera om värdet har raderats, skriv in arraynamnet och tryck på Enter på tangentbordet:

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ÖK

Med den här operationen kan du söka efter ett objekt i en array baserat på dess värde. Denna metod accepterar endast ett argument, värde. Detta är en oförstörande metod, vilket innebär att den inte påverkar arrayvärdena.

syntax

arrayName.index(value)

Exempel:

Låt oss söka efter värdet 150 i arrayen. För närvarande har vår balansmatris fyra poster 300, 200, 150 och 100. Så för att söka efter 150 i matrisen behöver vi bara skriva 150 i metodargumentet. Det är ganska lätt. Denna metod returnerar indexet för det sökta värdet.

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

PRODUKTION

2

UPPDATERING

Denna operation är ganska lik insättningsmetoden, förutom att den kommer att ersätta det befintliga värdet vid det givna indexet. Detta innebär helt enkelt att tilldela ett nytt värde vid det givna indexet. Denna metod förväntar sig två argument index och värde.

syntax

arrayName.udpate(index, value)

Exempel:

Antag att vår array har fyra objekt 300, 200, 150 och 100, och vi vill ersätta 150 med 145. Så vad är index 150?

Kudos, om du sa 2.

För att ersätta 150 som har index 2 måste du referera till index 2 genom att använda en enkel tilldelningsoperator, som den här:

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

Nu, för att verifiera om värdet har uppdaterats, skriv in arraynamnet och tryck på Enter på tangentbordet:

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 korsa en python-array genom att använda loopar, som den här:

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

PRODUKTION

300
200
100

Skapa en Array i C++

C++ språk är mer flexibel än Python när det gäller att skapa arrayer. Du kan skapa C++ arrayer på tre sätt som nämns i förväg.

Följande kod illustrerar hur du kan skapa en heltalsmatris i C++ för att lagra 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;
}

Sätt att deklarera en array i C++

Du kan deklarera en array i tre syntaxvarianter. Vilken passar ditt program; detta val baseras på dina programkrav.

Deklaration efter storlek

syntax

dataType arrayName[arraySize];

Exempel:

int balance[3];

Endast deklarationsinitialiseringsobjekt

syntax

dataType arrayName[] = {array, items};

Exempel:

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

Deklaration efter storlek och initialiseringsarrayobjekt

syntax

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

Exempel:

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

Hur får man tillgång till ett specifikt arrayvärde?

Du kan komma åt vilket arrayobjekt som helst genom att använda dess index.

syntax

arrayName[indexNum]

Exempel:

balance[1]

Följande bild illustrerar det grundläggande konceptet för att komma åt matrisobjekt genom deras index.

Åtkomst till ett arrayelement

Åtkomst till ett arrayelement

Här har vi nått det andra värdet för matrisen med hjälp av dess index, som är 1. Utgången av detta kommer att vara 200, vilket i princip är det andra värdet för balansmatrisen.

#include <iostream>
using namespace std;

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

  return 0;
}

Produktion

200

array Operationer i C++

Till skillnad från Pythoni C++ du måste programmera logiken själv för att utföra infogning, radering, sökuppdatering och traversering C++ arrayer.

Insert

Logiken för infogningsoperationen går som följer:

  • gå igenom arrayobjekten
  • flytta dem till ett större index
  • lägg till ett nytt arrayobjekt vid ett givet index

I följande exempel har vi 5 poster i saldomatrisen, och vi vill lägga till en ny post precis efter värdet 200. Det betyder att vi måste flytta alla poster efter 200 till ett större index och sedan infoga vår nya värde 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

Låt oss skapa en programmering i JavaI detta array-program i Java vi accepterar storleken och värdet på arrayelementen från användaren.

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 

Ändra element i array:-

Uppdatera ett element med det givna indexet.

Program i Java för hur man ändrar element i en 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 

Åtkomstelement i Array:-

Skriv ut alla arrayelement.

Program i Java för hur man korsar 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 

Sammanfattning

  • En array är en datastruktur för att lagra flera dataobjekt som har en liknande datatyp
  • Identifierare, datatyp, arraylängd, element och index är huvuddelarna i en array
  • Använd indexet för att bearbeta värdena för matriselement
  • Arrayer har utmärkt stöd för att hålla datatyp intakt
  • På de flesta språk skapas en array genom att ange en identifierare, datatyp och element som ska inkluderas
  • Matriser är bäst för att bearbeta ett stort antal värden och för snabb sortering och sökning
  • Python har moduler och inbyggda metoder för att utföra grundläggande arrayoperationer som att infoga, ta bort, söka, uppdatera och gå igenom
  • C++ behöver definiera program för grundläggande arrayoperationer som infoga, ta bort, sökuppdatering och traversering

Sammanfatta detta inlägg med: