Tablica w strukturze danych (Operacje)
⚡ Inteligentne podsumowanie
Tablica w strukturze danych przechowuje wiele elementów tego samego typu danych w sąsiadujących lokalizacjach pamięci, do których można dotrzeć za pomocą indeksu. Ten samouczek wyjaśnia koncepcję, dlaczego tablice są ważne oraz jak je tworzyć i na nich operować. Python, C++, Java z przykładami.
Co to jest tablica w strukturze danych?
An szyk to struktura danych służąca do przechowywania więcej niż jednego elementu danych o podobnym typie. Elementy tablicy są przydzielane do sąsiadujących lokalizacji w pamięci, a lokalizacje te nazywane są Elementy tablicy. Całkowita liczba elementów w tablicy to jej długość.
Dostęp do każdego elementu uzyskuje się poprzez jego pozycję, a to odniesienie nazywa się wskaźnik or indeks.
Pojęcie tablicy
Schemat koncepcyjny tablic
Powyższy diagram ilustruje to:
- Tablica jest kontenerem elementów.
- Elementy mają określoną wartość i typ danych, np. „ABC”, PRAWDA lub FAŁSZ.
- Każdy element ma swój własny indeks, który służy do uzyskania do niego dostępu.
Uwaga:
- Elementy są przechowywane w sąsiadujących lokalizacjach pamięci.
- Indeks jest zawsze mniejszy niż całkowita liczba elementów tablicy.
- Każda zmienna zadeklarowana jako tablica może przechowywać wiele wartości.
- Prawie wszystkie języki opierają się na tej samej koncepcji tablic, ale różnią się sposobem ich deklarowania i inicjowania.
- Trzy części pozostają wspólne dla wszystkich inicjalizacji: nazwa tablicy, elementy i typ danych elementów.
Poniższy diagram przedstawia składnię deklarowania tablica w Python oraz C++, co dowodzi, że koncepcja pozostaje taka sama, mimo że składnia nieznacznie różni się w zależności od języka.
Zrozumienie składni tablic
- Nazwa tablicy: potrzebne do łatwego odwoływania się do zbioru elementów.
- Typ danych: potrzebne do sprawdzania typów i integralności danych.
- Elementy: wartości danych obecne w tablicy.
Dlaczego potrzebujemy tablic?
- Tablice idealnie nadają się do przechowywania wielu wartości w jednej zmiennej.
- Łatwo i szybko przetwarzają wiele wartości.
- Sortowanie i wyszukiwanie wartości jest łatwiejsze za pomocą tablic.
Tworzenie tablicy w Python
In PythonTablice różnią się od list tym, że lista może zawierać elementy różnych typów danych, natomiast tablica może zawierać wyłącznie elementy tego samego typu danych. Python posiada oddzielny moduł do obsługi tablic, zwany array, który musisz zaimportować przed jego użyciem.
Uwaga: Tablica musi zawierać liczby rzeczywiste, takie jak liczby całkowite i zmiennoprzecinkowe. Ciągi znaków nie są dozwolone.
Poniższy kod tworzy tablicę liczb całkowitych w Python do przechowywania sald kont:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Sposoby deklarowania tablicy w Python
Możesz zadeklarować tablicę w Python podczas inicjalizacji używając następującej składni:
arrayName = array.array(typecode, [array_items])
Składnia tablicy w Python
- Identyfikator: podaj nazwę, tak jak zwykle robisz to w przypadku zmiennych.
- Moduły: Python ma specjalny moduł o nazwie „array”, który należy najpierw zaimportować.
- Metoda: Moduł tablicy ma metodę inicjowania tablicy, przyjmującą dwa argumenty — typecode i elementy.
- Kod typu: określ typ danych korzystając z dostępnych kodów typów (patrz tabela poniżej).
- Elementy: określ elementy tablicy w nawiasach kwadratowych, na przykład [130, 450, 103].
Poniższa tabela zawiera listę kodów typów dostępnych dla obsługiwanych typów danych.
| Wpisz kod | Typ C | Python Typ | Minimalny rozmiar (bajty) |
|---|---|---|---|
| 'b' | podpisany char | int | 1 |
| 'B' | niepodpisany char | int | 1 |
| „ty” | Py_UNICODE | Znak Unicode | 2 |
| 'h' | podpisany krótko | int | 2 |
| „H” | bez znaku krótkie | int | 2 |
| 'ja' | podpisał się m.in | int | 2 |
| 'JA' | niepodpisany | int | 2 |
| 'l' | podpisany długo | int | 4 |
| „L” | bez znaku długo | int | 4 |
| 'fa' | unosić się | unosić się | 4 |
| 're' | Podwójna | unosić się | 8 |
Jak uzyskać dostęp do określonej wartości tablicy?
Dostęp do dowolnego elementu tablicy można uzyskać za pomocą jego indeksu.
Składnia:
arrayName[indexNum]
Przykład:
balance[1]
Uzyskaj dostęp do elementu tablicy
Tutaj uzyskaliśmy dostęp do drugiej wartości tablicy przy użyciu indeksu 1. Wynikiem jest 200, czyli druga wartość tablicy salda.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Wyjście:
200
Szyk Operaw Python
Python Moduł array udostępnia oddzielne funkcje do operacji na tablicach. Są to metody destrukcyjne, co oznacza, że modyfikacja jest zapisywana w zmiennej tablicowej.
wstawka
Ta operacja wstawia jeden lub więcej elementów do tablicy na początku, na końcu lub pod dowolnym indeksem. Oczekuje dwóch argumentów: indeksu i wartości.
arrayName.insert(index, value)
Przykład: Aby wstawić nową wartość zaraz po indeksie 1 (wartość 200), odwołaj się do indeksu 2 w metodzie insert.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Wyjście:
array('i', [300, 200, 150, 100])
Usunięcia
Ta operacja usuwa jeden element z tablicy według wartości, przyjmując pojedynczy argument. Po jej uruchomieniu elementy są ponownie rozmieszczane, a indeksy przypisywane.
arrayName.remove(value)
Przykład:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Wyjście:
array('i', [300, 200, 100])
Szukaj
Ta operacja wyszukuje element według wartości i zwraca jego indeks. Jest to metoda niedestrukcyjna, więc nie zmienia wartości tablicy.
arrayName.index(value)
Przykład:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Wyjście:
2
Aktualizacja
Aktualizacja polega na zastąpieniu istniejącej wartości pod danym indeksem za pomocą prostego operatora przypisania. (Python tablice nie mają update() metoda.)
arrayName[index] = value
Przykład: Aby zastąpić 150 (o indeksie 2) liczbą 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Wyjście:
array('i', [300, 200, 145, 100])
Przemierzać
Możesz przejść przez Python tablica za pomocą pętli:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Wyjście:
300
200
100
Tworzenie tablicy w C++
C++ jest bardziej elastyczny niż Python podczas tworzenia tablic. Możesz tworzyć C++ tablice na trzy sposoby. Poniższy kod tworzy tablicę liczb całkowitych w C++ do przechowywania sald kont:
#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;
}
Sposoby deklarowania tablicy w C++
Tablicę można zadeklarować na trzy sposoby, zależnie od wymagań programu.
Deklaracja według rozmiaru:
dataType arrayName[arraySize]; // e.g. int balance[3];
Deklaracja zawierająca tylko elementy tablicy:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Oświadczenie według rozmiaru i pozycji:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Jak uzyskać dostęp do określonej wartości tablicy w C++?
Dostęp do elementu tablicy
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Wyjście:
200
Szyk Operaw C++
w odróżnieniu Pythonw C++ musisz samodzielnie zaprogramować logikę operacji wstawiania, usuwania, wyszukiwania, aktualizowania i przechodzenia.
wstawka
Logika wstawiania wygląda następująco: przechodzenie przez elementy tablicy, przesuwanie ich o indeks wyższy, a następnie dodawanie nowego elementu o podanym indeksie. Poniższy przykład zawiera pięć elementów i wstawianie wartości 150 zaraz po wartości 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]);
}
}
Szyk Operaw Java
Stwórzmy program w Java który akceptuje rozmiar i wartości elementów tablicy od użytkownika.
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] + " ");
}
}
}
Modyfikuj element w Java Szyk
Zaktualizuj element według jego indeksu.
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] + " ");
}
}
}
Dostęp do elementów w Java Szyk
Wypisz wszystkie elementy tablicy, przechodząc przez tablicę.
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] + " ");
}
}
}






