Massiiv andmestruktuuris: mis on, massiivid Operasioonid [näited]

Mis on massiiv andmestruktuuris?

An massiivi on andmestruktuur rohkem kui ühe sarnase andmetüübiga andmeüksuse salvestamiseks. Massiivi üksused jaotatakse külgnevatesse mälukohtadesse. Neid mälukohti nimetatakse elemendid sellest massiivist. Nimetatakse massiivi elementide koguarvu pikkus.

Massiivi üksikasjadele pääseb juurde selle asukoha kohta. Seda viidet nimetatakse indeks or alamindeks.

Massiivi kontseptsioon

Massiivide kontseptsiooni skeem
Massiivide kontseptsiooni skeem

Ülaltoodud diagramm näitab, et:

  1. Massiiv on elementide konteiner.
  2. Elementidel on konkreetne väärtus ja andmetüüp, näiteks „ABC”, TRUE või FALSE jne.
  3. Igal elemendil on ka oma indeks, mida kasutatakse elemendile juurdepääsuks.

Märge:

  • Elemendid salvestatakse külgnevatesse mälukohtadesse.
  • Indeks on alati väiksem kui massiivi üksuste koguarv.
  • Süntaksi poolest võib iga massiivina deklareeritud muutuja salvestada mitu väärtust.
  • Peaaegu kõik keeled mõistavad massiive samamoodi, kuid neil on erinevad viisid nende deklareerimiseks ja initsialiseerimiseks.
  • Kuid kolm osa jäävad kõigis lähtestustes alati ühiseks, st massiivi nimi, elemendid ja elementide andmetüüp.

Järgmine diagramm illustreerib an deklareerimise süntaksit massiivi sisse Python ja C++ näidata, et arusaam jääb samaks, kuigi süntaks võib erinevates keeltes veidi erineda.

Massiivide süntaksi mõistmine

Massiivide süntaksi mõistmine
  • Massiivi nimi: vajalik elementide kogumile hõlpsaks viitamiseks
  • Andmetüüp: vajalik tüübikontrolliks ja andmete terviklikkuse tagamiseks
  • Elemendid: need on massiivi andmeväärtused

Miks me vajame massiive?

Siin on mõned põhjused massiivide kasutamiseks andmestruktuuris.

  • Massiivid sobivad kõige paremini mitme väärtuse salvestamiseks ühte muutujasse
  • Massiivid töötlevad paljusid väärtusi paremini lihtsalt ja kiiresti
  • Väärtuste sortimine ja otsimine on massiivides lihtsam

Massiivi loomine sisse Python

In Python, massiivid erinevad loenditest; loenditel võivad olla andmetüüpide massiiviüksused, samas kui massiividel võivad olla ainult sama tüüpi andmetüübid.

Python on massiivide käsitlemiseks eraldi moodul massiiv, mille peate importima enne, kui hakkate nendega töötama.

Märge: Massiiv peab sisaldama reaalarve, nagu täisarvud ja ujukid, stringid pole lubatud.

Järgmine kood illustreerib, kuidas saate luua pythonis täisarvude massiivi konto saldo salvestamiseks:

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

Massiivi deklareerimise viisid Python

Saate massiivi deklareerida Python selle lähtestamisel järgmise süntaksi abil.

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

Järgmine pilt selgitab süntaksit.

Massiivi süntaks sisse Python

Massiivi süntaks sisse Python

  1. Identifier: määrake nimi nagu tavaliselt muutujate jaoks
  2. moodulid: Python Massiivide loomiseks on spetsiaalne moodul, mida nimetatakse massiiviks – see tuleb enne kasutamist importida
  3. Meetod: massiivimoodulil on meetod massiivi lähtestamiseks. Selleks on vaja kahte argumenti, tüübikoodi ja elemente.
  4. Tüüpkood: määrake andmetüüp, kasutades saadaolevaid tüübikoode (vt allolevat loendit)
  5. Elements: määrake nurksulgudes olevad massiivi elemendid, näiteks [130,450,103]

Järgmine tabel illustreerib toetatud andmetüüpide jaoks saadaolevaid tüübikoode.

Sisestage kood C Tüüp Python KASUTUSALA Minimaalne suurus baitides
'c' sõjavanker iseloom 1
"B" allkirjastamata süsi int 1
"b" allkirjastatud char int 1
'su' Py_UNICODE Unicode'i märk 2
'h' allkirjastatud lühike int 2
'H' allkirjastamata lühike int 2
"mina" allkirjastatud int int 2
"Mina" allkirjastamata int pikk 2
'ma' pikalt allkirjastatud int 4
"L" allkirjastamata pikk pikk 4
"f" ujuk ujuk 4
'd' kahekordistada ujuk 8

Kuidas pääseda juurde konkreetsele massiivi väärtusele?

Saate juurde pääseda igale massiivi elemendile selle indeksi abil.

Süntaks

arrayName[indexNum]

Näide:

balance[1]

Järgmine pilt illustreerib massiivi üksustele nende indeksi kaudu juurdepääsu põhikontseptsiooni.

Juurdepääs massiivi elemendile

Juurdepääs massiivi elemendile

Siin oleme jõudnud massiivi teisele väärtusele, kasutades selle indeksit, mis on 1. Selle väljundiks on 200, mis on põhimõtteliselt tasakaalustatud massiivi teine ​​väärtus.

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

OUTPUT

200

Array Operamine

Massiivi moodul Python omab eraldi funktsioone massiivioperatsioonide sooritamiseks. See on massiividega töötamise hävitav meetod, mis tähendab, et muudatus salvestatakse massiivi muutujasse.

Sisesta

Selle toiminguga saate lisada massiivi algusesse, lõppu või mis tahes massiivi antud indeksisse ühe või mitu elementi. See meetod eeldab kahte argumendi indeksit ja väärtust.

Süntaks

arrayName.insert(index, value)

Näide:

Lisame uue väärtuse kohe pärast massiivi teist üksust. Praegu on meie saldomassiivis kolm üksust 300, 200 ja 100. Mis on siis teise massiivi üksuse indeks väärtusega 200, kui ütlesite 1.

Uue väärtuse sisestamiseks kohe indeksi 1 järele, peate oma lisamismeetodis viima indeksile 2, näiteks järgmiselt:

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

Nüüd, et kontrollida, kas uus väärtus on sisestatud, sisestage massiivi nimi ja vajutage klaviatuuril Enter:

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

OUTPUT

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

kustutama

Selle toiminguga saate massiivist ühe üksuse väärtuse järgi kustutada. See meetod aktsepteerib ainult ühte argumenti, väärtust. Pärast selle meetodi käivitamist järjestatakse massiivi üksused ümber ja indeksid määratakse uuesti.

Süntaks

arrayName.remove(value)

Näide:

Eemaldame massiivist väärtuse 150. Praegu on meie saldomassiivis neli üksust 300, 200, 150 ja 100. Nii et massiivist 150 eemaldamiseks peame meetodi argumendisse sisestama ainult 150. Lihtne, eks?

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

Nüüd, et kontrollida, kas väärtus on kustutatud, sisestage massiivi nimi ja vajutage klaviatuuril Enter:

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

OUTPUT

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

OTSI

Selle toiminguga saate otsida massiivist elementi selle väärtuse alusel. See meetod aktsepteerib ainult ühte argumenti, väärtust. See on mittepurustav meetod, mis tähendab, et see ei mõjuta massiivi väärtusi.

Süntaks

arrayName.index(value)

Näide:

Otsime massiivist väärtust 150. Praegu on meie saldomassiivis neli üksust 300, 200, 150 ja 100. Seega peame massiivist 150 otsimiseks sisestama meetodi argumendi sisse ainult 150. See on üsna lihtne. See meetod tagastab otsitud väärtuse indeksi.

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

OUTPUT

2

UPDATE

See toiming on üsna sarnane lisamismeetodiga, välja arvatud see, et see asendab antud indeksi olemasoleva väärtuse. See tähendab, et antud indeksile määratakse lihtsalt uus väärtus. See meetod eeldab kahte argumendi indeksit ja väärtust.

Süntaks

arrayName.udpate(index, value)

Näide:

Oletame, et meie massiivis on neli üksust 300, 200, 150 ja 100 ning me tahame 150 asendada 145-ga. Mis on siis indeks 150?

Aitäh, kui ütlesite 2.

Selleks, et asendada 150, millel on indeks 2, peate viima indeksile 2, kasutades lihtsat määramisoperaatorit, nagu see:

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

Nüüd, et kontrollida, kas väärtust on värskendatud, sisestage massiivi nimi ja vajutage klaviatuuril Enter:

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

OUTPUT

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

ristumine

Pythoni massiivi saate läbida, kasutades silmuseid, nagu see:

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

OUTPUT

300
200
100

Massiivi loomine sisse C++

C++ keel on paindlikum kui Python kui tegemist on massiivide loomisega. Saate luua C++ massiivid kolmel eespool mainitud viisil.

Järgmine kood illustreerib, kuidas saate luua täisarvu massiivi C++ konto saldo salvestamiseks:

#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;
}

Massiivi deklareerimise viisid C++

Massiivi saab deklareerida kolmes süntaksivariandis. Milline neist sobib teie programmiga; see valik põhineb teie programminõuetel.

Deklaratsioon suuruse järgi

Süntaks

dataType arrayName[arraySize];

Näide:

int balance[3];

Ainult deklaratsiooni initsialiseerimise massiivi üksused

Süntaks

dataType arrayName[] = {array, items};

Näide:

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

Deklaratsioon suuruse ja initsialiseerimismassiivi üksuste järgi

Süntaks

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

Näide:

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

Kuidas pääseda juurde konkreetsele massiivi väärtusele?

Saate juurde pääseda igale massiivi elemendile selle indeksi abil.

Süntaks

arrayName[indexNum]

Näide:

balance[1]

Järgmine pilt illustreerib massiivi üksustele nende indeksi kaudu juurdepääsu põhikontseptsiooni.

Juurdepääs massiivi elemendile

Juurdepääs massiivi elemendile

Siin oleme jõudnud massiivi teisele väärtusele, kasutades selle indeksit, mis on 1. Selle väljundiks on 200, mis on põhimõtteliselt tasakaalumassiivi teine ​​väärtus.

#include <iostream>
using namespace std;

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

  return 0;
}

Väljund

200

Array Operasisse C++

Erinevalt Pythonsisse C++ Sisestamise, kustutamise, otsingu uuendamise ja läbimise toimingute tegemiseks peate loogika ise programmeerima C++ massiivid.

Sisesta

Sisestamise loogika on järgmine:

  • sirvida massiivi üksusi
  • nihutada need suuremale indeksile
  • lisada antud indeksisse uus massiivi üksus

Järgmises näites on meil saldomassiivis 5 üksust ja me tahame lisada uue üksuse kohe pärast väärtust 200. See tähendab, et peame nihutama kõik üksused pärast väärtust 200 suuremasse indeksisse ja seejärel sisestama uue üksuse. väärtus 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]);
   }
}

Väljund

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

Array Operasisse Java

Teeme sisse programmeerimise Java, selles massiivi programm sisse Java aktsepteerime kasutajalt massiivi elementide suurust ja väärtust.

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

Väljund:-

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 

Muutke massiivi elementi: -

Värskendage elementi antud indeksi järgi.

Programm sisse Java kuidas muuta massiivi elemente

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

Väljund:-

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 

Juurdepääs massiivi elemendile: -

Printige kõik massiivi elemendid.

Programm sisse Java massiivi läbimise kohta

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

    }
}

Väljund:-

Array Elements are:-
1 2 3 4 5 

kokkuvõte

  • Massiiv on andmestruktuur mitme sarnase andmetüübiga andmeüksuse salvestamiseks
  • Identifikaator, andmetüüp, massiivi pikkus, elemendid ja indeks on massiivi peamised osad
  • Kasutage indeksit massiivi elementide väärtuste töötlemiseks
  • Massiividel on suurepärane tugi andmetüübi puutumatuks hoidmiseks
  • Enamikus keeltes luuakse massiiv, määrates identifikaatori, andmetüübi ja kaasatavad elemendid
  • Massiivid sobivad kõige paremini suure hulga väärtuste töötlemiseks ning kiireks sortimiseks ja otsimiseks
  • Python sisaldab mooduleid ja sisseehitatud meetodeid massiivi põhitoimingute tegemiseks, nagu sisestamine, kustutamine, otsimine, värskendamine ja läbimine
  • C++ vajab programmide määratlemist põhiliste massiivioperatsioonide jaoks, nagu sisestamine, kustutamine, otsimine värskendamisest ja läbimine

Võta see postitus kokku järgmiselt: