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

Ülaltoodud diagramm näitab, et:
- Massiiv on elementide konteiner.
- Elementidel on konkreetne väärtus ja andmetüüp, näiteks „ABC”, TRUE või FALSE jne.
- 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.
- 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.
- Identifier: määrake nimi nagu tavaliselt muutujate jaoks
- moodulid: Python Massiivide loomiseks on spetsiaalne moodul, mida nimetatakse massiiviks – see tuleb enne kasutamist importida
- Meetod: massiivimoodulil on meetod massiivi lähtestamiseks. Selleks on vaja kahte argumenti, tüübikoodi ja elemente.
- Tüüpkood: määrake andmetüüp, kasutades saadaolevaid tüübikoode (vt allolevat loendit)
- 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.
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.
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
