Pole v datové struktuře: Co je to, pole Operations [Příklady]

Co je pole v datové struktuře?

An řada je datová struktura pro uložení více než jedné datové položky, která má podobný datový typ. Položky pole jsou alokovány na sousedních paměťových místech. Tato paměťová místa se nazývají prvky toho pole. Zavolá se celkový počet prvků v poli délka.

Podrobnosti pole jsou přístupné o jeho poloze. Tato reference se nazývá index or index.

Koncept pole

Koncepční schéma polí
Koncepční schéma polí

Výše uvedený diagram ukazuje, že:

  1. Pole je kontejner prvků.
  2. Prvky mají určitou hodnotu a datový typ, například „ABC“, TRUE nebo FALSE atd.
  3. Každý prvek má také svůj vlastní index, který se používá pro přístup k prvku.

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.
  • Z hlediska syntaxe může každá proměnná, která je deklarována jako pole, uložit více hodnot.
  • Téměř všechny jazyky mají stejné chápání polí, ale mají různé způsoby, jak je deklarovat a inicializovat.
  • Tři části však vždy zůstanou společné ve všech inicializacích, tj. název pole, prvky a datový typ prvků.

Následující diagram ilustruje syntaxi deklarace an pole v Python si C++ prezentovat, že porozumění zůstává stejné, i když se syntaxe může v různých jazycích mírně lišit.

Pochopte syntaxi polí

Pochopte syntaxi polí
  • Název pole: nezbytné pro snadný odkaz na kolekci prvků
  • Datový typ: nezbytné pro kontrolu typu a integritu dat
  • Prvky: toto jsou datové hodnoty přítomné v poli

Proč potřebujeme pole?

Zde je několik důvodů pro použití polí v datové struktuře:

  • Pole jsou nejlepší pro ukládání více hodnot do jedné proměnné
  • Pole jsou lepší ve zpracování mnoha hodnot snadno a rychle
  • Řazení a vyhledávání hodnot je jednodušší v polích

Vytvoření pole v Python

In Python, pole se liší od seznamů; seznamy mohou mít položky polí datových typů, zatímco pole mohou mít pouze položky stejného datového typu.

Python má samostatný modul pro práci s poli nazvaný array, který musíte importovat, než na nich začnete pracovat.

Poznámka: Pole musí obsahovat reálná čísla, jako jsou celá čísla a plovoucí čísla, žádné řetězce nejsou povoleny.

Následující kód ukazuje, jak můžete vytvořit celočíselné pole v pythonu pro uložení zůstatku účtu:

 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 jeho inicializaci pomocí následující syntaxe.

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

Následující obrázek vysvětluje syntaxi.

Syntaxe Array in Python

Syntaxe Array in Python

  1. identifikátor: zadejte název jako obvykle, jako u proměnných
  2. Modul: Python má speciální modul pro vytváření polí, nazvaný „array“ – před použitím jej musíte importovat
  3. Metoda: modul pole má metodu pro inicializaci pole. Vyžaduje dva argumenty, typový kód a prvky.
  4. Zadejte kód: specifikujte datový typ pomocí dostupných typových kódů (viz seznam níže)
  5. Prvky: zadejte prvky pole v hranatých závorkách, například [130,450,103]

Následující tabulka ilustruje typové kódy dostupné pro podporované datové typy:

Zadejte kód Typ C Python Typ Minimální velikost v bajtech
'C' spálit znak 1
'B' nepodepsaný char int 1
'b' podepsaný 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 dlouhý 2
'l' podepsané dlouhé int 4
'L' bez podpisu dlouho dlouhý 4
'F' vznášet se vznášet se 4
'd' zdvojnásobit vznášet se 8

Jak získat přístup ke konkrétní hodnotě pole?

K libovolné položce pole můžete přistupovat pomocí jejího indexu.

Syntax

arrayName[indexNum]

Příklad:

balance[1]

Následující obrázek ilustruje základní koncept přístupu k položkám polí podle jejich indexu.

Přístup k prvku pole

Přístup k prvku pole

Zde jsme přistoupili k druhé hodnotě pole pomocí jeho indexu, který je 1. Výstupem tohoto pole bude 200, což je v podstatě druhá hodnota vyváženého pole.

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

VÝSTUP

200

Řada Operace

Modul pole Python má samostatné funkce pro provádění operací s polem. Toto je destruktivní metoda práce s poli, což znamená, že úprava bude uložena v proměnné pole.

Vložit

Pomocí této operace můžete vložit jednu nebo více položek do pole na začátek, konec nebo jakýkoli daný index pole. Tato metoda očekává dva argumenty index a hodnotu.

Syntax

arrayName.insert(index, value)

Příklad:

Přidejme novou hodnotu hned za druhou položku pole. V současné době má naše balanční pole tři položky 300, 200 a 100. Jaký je tedy index druhé položky pole s hodnotou 200, pokud jste řekli 1.

Chcete-li vložit novou hodnotu hned „za“ index 1, musíte ve své metodě vložení odkazovat na index 2, například takto:

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

Nyní, abyste ověřili, zda byla vložena nová hodnota, zadejte název pole a stiskněte Enter na klávesnici:

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

VÝSTUP

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

Vymazat

Pomocí této operace můžete odstranit jednu položku z pole podle hodnoty. Tato metoda přijímá pouze jeden argument, hodnotu. Po spuštění této metody jsou položky pole znovu uspořádány a indexy jsou znovu přiřazeny.

Syntax

arrayName.remove(value)

Příklad:

Odeberme hodnotu 150 z pole. V současné době má naše pole rovnováhy čtyři položky 300, 200, 150 a 100. Abychom tedy z pole odstranili 150, musíme do argumentu metody zadat pouze 150. Jednoduché, že?

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

Nyní, abyste ověřili, zda byla hodnota odstraněna, zadejte název pole a stiskněte Enter na klávesnici:

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

VÝSTUP

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

VYHLEDÁVÁNÍ

Pomocí této operace můžete vyhledat položku v poli na základě její hodnoty. Tato metoda přijímá pouze jeden argument, hodnotu. Jedná se o nedestruktivní metodu, což znamená, že neovlivňuje hodnoty pole.

Syntax

arrayName.index(value)

Příklad:

Pojďme hledat hodnotu 150 v poli. V současné době má naše balanční pole čtyři položky 300, 200, 150 a 100. Abychom tedy v poli prohledali 150, musíme do argumentu metody zadat pouze 150. To je docela snadné. Tato metoda vrací index hledané hodnoty.

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

VÝSTUP

2

UPDATE

Tato operace je velmi podobná metodě vložení, kromě toho, že nahradí stávající hodnotu na daném indexu. To znamená, že jednoduše přiřadí novou hodnotu danému indexu. Tato metoda očekává dva argumenty index a hodnotu.

Syntax

arrayName.udpate(index, value)

Příklad:

Předpokládejme, že naše pole má čtyři položky 300, 200, 150 a 100 a my chceme nahradit 150 číslem 145. Jaký je tedy index 150?

Díky, pokud jsi řekl 2.

Chcete-li nahradit 150, které má index 2, musíte odkazovat na index 2 pomocí jednoduchého operátoru přiřazení, jako je tento:

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

Nyní, abyste ověřili, zda byla hodnota aktualizována, zadejte název pole a stiskněte Enter na klávesnici:

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

Pole pythonu můžete procházet pomocí smyček, jako je tato:

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++ jazyk je pružnější než Python pokud jde o vytváření polí. Můžete tvořit C++ pole třemi výše uvedenými způsoby.

Následující kód ukazuje, jak můžete vytvořit celočíselné pole v C++ uložit zůstatek na účtu:

#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 ve třech variantách syntaxe. Který vyhovuje vašemu programu; tato volba je založena na požadavcích vašeho programu.

Prohlášení podle velikosti

Syntax

dataType arrayName[arraySize];

Příklad:

int balance[3];

Pouze položky pole inicializace deklarace

Syntax

dataType arrayName[] = {array, items};

Příklad:

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

Deklarace podle velikosti a položky inicializačního pole

Syntax

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

Příklad:

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

Jak získat přístup ke konkrétní hodnotě pole?

K libovolné položce pole můžete přistupovat pomocí jejího indexu.

Syntax

arrayName[indexNum]

Příklad:

balance[1]

Následující obrázek ilustruje základní koncept přístupu k položkám polí podle jejich indexu.

Přístup k prvku pole

Přístup k prvku pole

Zde jsme přistoupili k druhé hodnotě pole pomocí jeho indexu, který je 1. Výstupem tohoto pole bude 200, což je v podstatě druhá hodnota balančního 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++ musíte si sami naprogramovat logiku pro provádění operací vkládání, mazání, aktualizace vyhledávání a procházení C++ pole.

Vložit

Logika operace vkládání je následující:

  • procházet položky pole
  • přesuňte je na vyšší index
  • přidat novou položku pole na daný index

V následujícím příkladu máme v poli zůstatku 5 položek a chceme přidat novou položku hned za hodnotu 200. To znamená, že musíme všechny položky po 200 posunout na vyšší index a poté vložit nový hodnotu 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ýstup

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

Řada Operav Java

Pojďme vytvořit programování v Java, v tomhle program pole v Java od uživatele přijmeme velikost a hodnotu prvků pole.

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ýstup:-

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 

Upravit prvek v poli:-

Aktualizujte prvek podle daného indexu.

Program v Java jak upravit prvky v poli

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ýstup:-

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 

Přístupový prvek v poli:-

Vytiskněte všechny prvky pole.

Program v Java jak procházet v poli

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ýstup:-

Array Elements are:-
1 2 3 4 5 

Shrnutí

  • Pole je datová struktura pro ukládání více datových položek, které mají podobný datový typ
  • Identifikátor, datový typ, délka pole, prvky a index jsou hlavními částmi pole
  • Použijte index pro zpracování hodnot prvků pole
  • Pole mají vynikající podporu pro zachování neporušeného datového typu
  • Ve většině jazyků se pole vytváří zadáním identifikátoru, datového typu a prvků, které mají být zahrnuty
  • Pole jsou nejlepší pro zpracování velkého množství hodnot a pro rychlé třídění a vyhledávání
  • Python má moduly a vestavěné metody pro provádění základních operací pole, jako je vkládání, mazání, vyhledávání, aktualizace a procházení
  • C++ potřebuje definovat programy pro základní operace pole, jako je vkládání, mazání, aktualizace vyhledávání a procházení