Pole v datové struktuře (Operace)
⚡ Chytré shrnutí
Pole v datové struktuře ukládá více položek stejného datového typu na sousedících paměťových místech, přičemž každé z nich je dosažitelné pomocí indexu. Tento tutoriál vysvětluje koncept, proč jsou pole důležitá a jak je vytvářet a pracovat s nimi v... Python, C++, a Java s příklady.

Co je pole v datové struktuře?
An řada je datová struktura pro ukládání více než jedné datové položky podobného datového typu. Položky pole jsou alokovány na sousedních paměťových místech a tato místa se nazývají prvky pole. Celkový počet prvků v poli je jeho délka.
Ke každému prvku se přistupuje podle jeho pozice a tento odkaz se nazývá index or index.
Koncept pole
Koncepční schéma polí
Výše uvedený diagram ilustruje, že:
- Pole je kontejner prvků.
- Prvky mají specifickou hodnotu a datový typ, například „ABC“, TRUE nebo FALSE.
- Každý prvek má svůj vlastní index, který se používá pro přístup k němu.
Poznámka:
- Prvky jsou uloženy na souvislých paměťových místech.
- Index je vždy menší než celkový počet položek pole.
- Jakákoli proměnná deklarovaná jako pole může ukládat více hodnot.
- Téměř všechny programovací jazyky sdílejí stejný koncept polí, ale liší se v tom, jak je deklarují a inicializují.
- Tři části zůstávají společné pro všechny inicializace: název pole, prvky a datový typ prvků.
Následující diagram znázorňuje syntaxi pro deklaraci pole v Python a C++, což dokazuje, že koncept zůstává stejný, i když se syntaxe mezi jazyky mírně liší.
Pochopte syntaxi polí
- Název pole: potřebné pro snadnou orientaci v kolekci prvků.
- Datový typ: potřebné pro kontrolu typů a integritu dat.
- Prvky: datové hodnoty přítomné v poli.
Proč potřebujeme pole?
- Pole jsou ideální pro ukládání více hodnot do jedné proměnné.
- Zpracovávají mnoho hodnot snadno a rychle.
- Řazení a vyhledávání hodnot je s poli snazší.
Vytvoření pole v Python
In PythonPole se liší od seznamů: seznam může obsahovat položky různých datových typů, zatímco pole může obsahovat pouze položky stejného datového typu. Python má samostatný modul pro práci s poli, nazvaný array, který musíte před použitím importovat.
Poznámka: Pole musí obsahovat reálná čísla, jako jsou celá čísla a čísla s desetinnou čárkou; řetězce nejsou povoleny.
Následující kód vytvoří celočíselné pole v Python pro uložení zůstatků na účtech:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Způsoby, jak deklarovat pole Python
Můžete deklarovat pole v Python při inicializaci pomocí následující syntaxe:
arrayName = array.array(typecode, [array_items])
Syntaxe Array in Python
- Identifikátor: zadejte název, jak obvykle děláte u proměnných.
- Moduly: Python má speciální modul s názvem „array“, který musíte nejprve importovat.
- Metoda: Modul array má metodu pro inicializaci pole, která přijímá dva argumenty – typový kód a prvky.
- Kód typu: určete datový typ pomocí dostupných typových kódů (viz tabulka níže).
- Prvky: Zadejte prvky pole v hranatých závorkách, například [130, 450, 103].
V následující tabulce jsou uvedeny typové kódy dostupné pro podporované datové typy.
| Zadejte kód | Typ C | Python Typ | Minimální velikost (bajty) |
|---|---|---|---|
| 'b' | podepsaný char | int | 1 |
| 'B' | nepodepsaný char | int | 1 |
| 'u' | Py_UNICODE | Znak Unicode | 2 |
| 'h' | podepsáno krátce | int | 2 |
| 'H' | bez znaménka krátký | int | 2 |
| „já“ | podepsané int | int | 2 |
| „Já“ | neoznačené int | int | 2 |
| 'l' | podepsané dlouhé | int | 4 |
| 'L' | bez podpisu dlouho | int | 4 |
| 'F' | vznášet se | vznášet se | 4 |
| 'd' | zdvojnásobit | vznášet se | 8 |
Jak získat přístup k určité hodnotě pole?
K libovolné položce pole můžete přistupovat pomocí jejího indexu.
Syntaxe:
arrayName[indexNum]
Příklad:
balance[1]
Přístup k prvku pole
Zde jsme přistupovali k druhé hodnotě pole pomocí indexu 1. Výstup je 200, což je druhá hodnota pole balance.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Výstup:
200
Řada Operav Python
Jedno Python Modul array poskytuje samostatné funkce pro operace s poli. Jedná se o destruktivní metody, což znamená, že modifikace je uložena v proměnné pole.
Vložit
Tato operace vkládá jednu nebo více položek do pole na začátek, konec nebo na libovolný daný index. Očekává dva argumenty: index a hodnotu.
arrayName.insert(index, value)
Příklad: Chcete-li vložit novou hodnotu hned za index 1 (hodnota 200), odkazujte v metodě insert na index 2.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Výstup:
array('i', [300, 200, 150, 100])
Vymazat
Tato operace odstraní jednu položku z pole typu value a přijme jeden argument. Po jejím spuštění se položky znovu uspořádají a indexy se znovu přiřadí.
arrayName.remove(value)
Příklad:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Výstup:
array('i', [300, 200, 100])
Hledat
Tato operace vyhledává položku podle hodnoty a vrací její index. Jedná se o nedestruktivní metodu, takže nemění hodnoty pole.
arrayName.index(value)
Příklad:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Výstup:
2
Aktualizace
Aktualizace nahrazuje existující hodnotu na daném indexu pomocí jednoduchého operátoru přiřazení.Python pole nemají update() metoda.)
arrayName[index] = value
Příklad: Nahrazení čísla 150 (na indexu 2) číslem 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Výstup:
array('i', [300, 200, 145, 100])
přejít
Můžete procházet a Python pole pomocí smyčky:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Výstup:
300
200
100
Vytvoření pole v C++
C++ je pružnější než Python při vytváření polí. Můžete vytvořit C++ pole třemi způsoby. Následující kód vytvoří celočíselné pole v C++ pro uložení zůstatků na účtech:
#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;
}
Způsoby, jak deklarovat pole C++
Pole můžete deklarovat třemi způsoby, v závislosti na požadavcích vašeho programu.
Prohlášení podle velikosti:
dataType arrayName[arraySize]; // e.g. int balance[3];
Deklarace pouze s položkami pole:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Prohlášení podle velikosti a položek:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Jak získat přístup ke konkrétní hodnotě pole v C++?
Přístup k prvku pole
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Výstup:
200
Řada Operav C++
Na rozdíl od Python, v C++ Pro operace vkládání, mazání, vyhledávání, aktualizace a posuvu si musíte logiku naprogramovat sami.
Vložit
Logika vkládání je následující: projít prvky pole, posunout je na vyšší index a poté přidat nový prvek na daném indexu. Následující příklad má pět položek a vkládá číslo 150 hned za hodnotu 200.
#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]);
}
}
Řada Operav Java
Vytvořme si program v Java který přijímá velikost a hodnoty prvků pole od uživatele.
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] + " ");
}
}
}
Úprava prvku v Java Řada
Aktualizovat prvek podle jeho indexu.
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] + " ");
}
}
}
Přístup k prvkům v Java Řada
Vytiskněte všechny prvky pole procházením pole.
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] + " ");
}
}
}





