Taulukko tietorakenteessa (Operations)
โก รlykรคs yhteenveto
Tietorakenteiden taulukko tallentaa useita saman tietotyypin alkioita vierekkรคisiin muistipaikkoihin, joista jokainen on tavoitettavissa indeksin avulla. Tรคssรค opetusohjelmassa selitetรครคn taulukoiden kรคsite, miksi ne ovat tรคrkeitรค ja miten niitรค luodaan ja kรคsitellรครคn. Python, C++ja Java esimerkkien avulla.
Mikรค on Array tietorakenteessa?
An ryhmรค on tietorakenne, johon tallennetaan useampi kuin yksi saman tyyppinen tietoelementti. Taulukon alkiot varataan vierekkรคisiin muistipaikkoihin, ja nรคitรค paikkoja kutsutaan elementtejรค taulukosta. Taulukon alkioiden kokonaismรครคrรค on sen pituus.
Jokaiseen elementtiin pรครคstรครคn kรคsiksi sen sijainnin perusteella, ja tรคtรค viittausta kutsutaan indeksi or alaindeksi.
Array-konsepti
Taulukon kรคsitekaavio
Yllรค oleva kaavio havainnollistaa sitรค:
- Taulukko on elementtien sรคiliรถ.
- Elementeillรค on tietty arvo ja tietotyyppi, kuten โABCโ, TRUE tai FALSE.
- Jokaisella elementillรค on oma indeksi, jota kรคytetรครคn sen kรคyttรคmiseen.
Huomautus:
- Elementit tallennetaan vierekkรคisiin muistipaikkoihin.
- Indeksi on aina pienempi kuin taulukon kohteiden kokonaismรครคrรค.
- Mikรค tahansa taulukkona ilmoitettu muuttuja voi tallentaa useita arvoja.
- Lรคhes kaikilla kielillรค on sama taulukoiden kรคsite, mutta ne eroavat toisistaan โโsiinรค, miten ne deklaroivat ja alustavat ne.
- Kolme osaa pysyy yhteisenรค kaikissa alustuksissa: taulukon nimi, elementit ja elementtien tietotyyppi.
Seuraava kaavio nรคyttรครค syntaksin, jolla mรครคritetรครคn joukko sisรครคn Python ja C++, mikรค osoittaa, ettรค kรคsite pysyy samana, vaikka syntaksi vaihtelee hieman kielten vรคlillรค.
Ymmรคrrรค taulukoiden syntaksi
- Taulukon nimi: tarvitaan elementtikokoelman helppoa tarkastelua varten.
- Tietotyyppi: tarvitaan tyyppitarkistukseen ja tietojen eheyden tarkistamiseen.
- elementit: taulukossa olevat data-arvot.
Miksi tarvitsemme taulukoita?
- Taulukot sopivat erinomaisesti useiden arvojen tallentamiseen yhteen muuttujaan.
- Ne kรคsittelevรคt monia arvoja helposti ja nopeasti.
- Arvojen lajittelu ja hakeminen on helpompaa taulukoiden avulla.
Array:n luominen sisรครคn Python
In Python, taulukot eroavat listoista: lista voi sisรคltรครค eri tietotyyppisiรค alkioita, kun taas taulukko voi sisรคltรครค vain saman tietotyypin alkioita. Python siinรค on erillinen moduuli taulukoiden kรคsittelyรค varten, nimeltรครคn array, joka sinun on tuotava ennen sen kรคyttรถรค.
Huomautus: Taulukon on sisรคllettรคvรค reaalilukuja, kuten kokonaislukuja ja liukulukuja; merkkijonoja ei sallita.
Seuraava koodi luo kokonaislukutaulukon Python tilin saldojen tallentamiseen:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Tapoja ilmoittaa taulukko sisรครคn Python
Voit ilmoittaa taulukon sisรครคn Python samalla kun se alustetaan seuraavalla syntaksilla:
arrayName = array.array(typecode, [array_items])
Array in syntaksi Python
- tunniste: mรครคritรค nimi kuten yleensรค muuttujille.
- Moduuli: Python sisรคltรครค erikoismoduulin nimeltรค โarrayโ, joka sinun on tuotava ensin.
- Menetelmรค: Array-moduulilla on metodi taulukon alustamiseen, joka ottaa vastaan โโkaksi argumenttia โ typecode ja elements.
- Tyyppikoodi: Mรครคritรค tietotyyppi kรคyttรคmรคllรค kรคytettรคvissรค olevia tyyppikoodeja (katso alla oleva taulukko).
- elementit: Mรครคritรค taulukon alkiot hakasulkeissa, esimerkiksi [130, 450, 103].
Alla olevassa taulukossa luetellaan tuettujen tietotyyppien tyyppikoodit.
| Kirjoita koodi | C-tyyppi | Python Tyyppi | Minimikoko (tavua) |
|---|---|---|---|
| 'b' | allekirjoitettu merkki | int | 1 |
| 'B' | allekirjoittamaton char | int | 1 |
| "sinรค" | Py_UNICODE | Unicode-merkki | 2 |
| 'h' | allekirjoitettu lyhyesti | int | 2 |
| 'H' | allekirjoittamaton lyhyt | int | 2 |
| 'I' | allekirjoitettu int | int | 2 |
| 'I' | allekirjoittamaton int | int | 2 |
| 'L' | allekirjoitettu pitkรครคn | int | 4 |
| 'L' | allekirjoittamaton pitkรค | int | 4 |
| 'F' | kellua | kellua | 4 |
| 'd' | kaksinkertainen | kellua | 8 |
Kuinka pรครคstรค kรคsiksi tiettyyn taulukon arvoon?
Voit kรคyttรครค mitรค tahansa taulukon alkiota sen indeksin avulla.
Syntaksi:
arrayName[indexNum]
Esimerkiksi:
balance[1]
Kรคytรค taulukkoelementtiรค
Tรคssรค kรคytimme taulukon toista arvoa indeksin 1 avulla. Tuloste on 200, joka on saldotaulukon toinen arvo.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
lรคhtรถ:
200
Ryhmรค Operasisรครคn Python
Python array-moduuli tarjoaa erilliset funktiot taulukkooperaatioille. Nรคmรค ovat destruktiivisia metodeja, eli muutos tallennetaan taulukkomuuttujaan.
liite
Tรคmรค toiminto lisรครค yhden tai useamman alkion taulukon alkuun, loppuun tai mihin tahansa annettuun indeksiin. Se odottaa kahta argumenttia: indeksiรค ja arvoa.
arrayName.insert(index, value)
Esimerkiksi: Jos haluat lisรคtรค uuden arvon heti indeksin 1 (arvo 200) jรคlkeen, viittaa indeksiin 2 lisรคysmetodissa.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
lรคhtรถ:
array('i', [300, 200, 150, 100])
Poista
Tรคmรค toiminto poistaa yhden alkion taulukosta arvon perusteella ja hyvรคksyy yhden argumentin. Suorituksen jรคlkeen alkiot jรคrjestetรครคn uudelleen ja indeksit mรครคritetรครคn uudelleen.
arrayName.remove(value)
Esimerkiksi:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
lรคhtรถ:
array('i', [300, 200, 100])
Haku
Tรคmรค operaatio etsii alkiota arvon perusteella ja palauttaa sen indeksin. Se on ei-tuhoava menetelmรค, joten se ei muuta taulukon arvoja.
arrayName.index(value)
Esimerkiksi:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
lรคhtรถ:
2
Pรคivitykset
Pรคivitys korvaa olemassa olevan arvon tietyssรค indeksissรค kรคyttรคmรคllรค yksinkertaista sijoitusoperaattoria.Python taulukoilla ei ole update() menetelmรค.)
arrayName[index] = value
Esimerkiksi: Korvaa 150 (indeksissรค 2) luvulla 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
lรคhtรถ:
array('i', [300, 200, 145, 100])
poikittainen
Voit kulkea a Python taulukko silmukan avulla:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
lรคhtรถ:
300
200
100
Array:n luominen sisรครคn C++
C++ on joustavampi kuin Python taulukoita luotaessa. Voit luoda C++ taulukot kolmella tavalla. Seuraava koodi luo kokonaislukutaulukon C++ tilin saldojen tallentamiseen:
#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;
}
Tapoja ilmoittaa taulukko sisรครคn C++
Voit mรครคrittรครค taulukon kolmella tavalla ohjelmasi vaatimuksista riippuen.
Ilmoitus koon mukaan:
dataType arrayName[arraySize]; // e.g. int balance[3];
Mรครคrittely, jossa kรคytetรครคn vain taulukon alkioita:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Ilmoitus koon ja nimikkeiden mukaan:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Kuinka pรครคstรค kรคsiksi tiettyyn taulukon arvoon C++?
Matriisielementin kรคyttรคminen
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
lรคhtรถ:
200
Ryhmรค Operasisรครคn C++
Toisin kuin Pythonsisรครคn C++ Sinun on ohjelmoitava logiikka itse lisรคys-, poisto-, haku-, pรคivitys- ja lรคpikulkuoperaatioille.
liite
Lisรคyslogiikka on seuraava: kรคydรครคn lรคpi taulukon alkiot, siirretรครคn ne suurempaan indeksiin ja lisรคtรครคn sitten uusi alkio annettuun indeksiin. Alla olevassa esimerkissรค on viisi alkiota ja 150 lisรคtรครคn heti arvon 200 jรคlkeen.
#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]);
}
}
Ryhmรค Operasisรครคn Java
Luodaan ohjelma sisรครคn Java joka hyvรคksyy kรคyttรคjรคltรค taulukon alkioiden koon ja arvot.
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] + " ");
}
}
}
Muokkaa elementtiรค Java Ryhmรค
Pรคivitรค elementti sen indeksin perusteella.
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] + " ");
}
}
}
Kรคytรค elementtejรค a:ssa Java Ryhmรค
Tulosta kaikki taulukon alkiot kรคymรคllรค lรคpi taulukon.
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] + " ");
}
}
}






