Πίνακας σε Δομή Δεδομένων (Operaσεις)
⚡ Έξυπνη Σύνοψη
Ο πίνακας στη Δομή Δεδομένων αποθηκεύει πολλά στοιχεία του ίδιου τύπου δεδομένων σε συνεχόμενες θέσεις μνήμης, καθεμία από τις οποίες είναι προσβάσιμη μέσω ενός ευρετηρίου. Αυτό το σεμινάριο εξηγεί την έννοια, γιατί οι πίνακες είναι σημαντικοί και πώς να τους δημιουργείτε και να τους χειρίζεστε στο Python, C++και Java με παραδείγματα.

Τι είναι το Array στη Δομή Δεδομένων;
An παράταξη είναι μια δομή δεδομένων για την αποθήκευση περισσότερων από ενός στοιχείων δεδομένων παρόμοιου τύπου. Τα στοιχεία ενός πίνακα κατανέμονται σε γειτονικές θέσεις μνήμης και αυτές οι θέσεις ονομάζονται στοιχεία του πίνακα. Ο συνολικός αριθμός στοιχείων σε έναν πίνακα είναι ο μήκος.
Κάθε στοιχείο είναι προσβάσιμο από τη θέση του και αυτή η αναφορά ονομάζεται ευρετήριο or υπογεγραμμένος.
Έννοια του πίνακα
Εννοιολογικό διάγραμμα συστοιχιών
Το παραπάνω διάγραμμα δείχνει ότι:
- Ένας πίνακας είναι ένα δοχείο στοιχείων.
- Τα στοιχεία έχουν μια συγκεκριμένη τιμή και τύπο δεδομένων, όπως "ABC", TRUE ή FALSE.
- Κάθε στοιχείο έχει το δικό του ευρετήριο, το οποίο χρησιμοποιείται για την πρόσβαση σε αυτό.
Σημείωση:
- Τα στοιχεία αποθηκεύονται σε συνεχόμενες θέσεις μνήμης.
- Ένας δείκτης είναι πάντα μικρότερος από τον συνολικό αριθμό των στοιχείων του πίνακα.
- Οποιαδήποτε μεταβλητή που δηλώνεται ως πίνακας μπορεί να αποθηκεύσει πολλαπλές τιμές.
- Σχεδόν όλες οι γλώσσες χρησιμοποιούν την ίδια έννοια για τους πίνακες, αλλά διαφέρουν στον τρόπο που τους δηλώνουν και τους αρχικοποιούν.
- Τρία μέρη παραμένουν κοινά σε όλες τις αρχικοποιήσεις: το όνομα του πίνακα, τα στοιχεία και ο τύπος δεδομένων των στοιχείων.
Το ακόλουθο διάγραμμα δείχνει τη σύνταξη για τη δήλωση ενός συστοιχία μέσα Python και C++, αποδεικνύοντας ότι η ιδέα παραμένει η ίδια παρόλο που η σύνταξη διαφέρει ελαφρώς μεταξύ των γλωσσών.
Κατανοήστε τη Σύνταξη Πίνακες
- Όνομα πίνακα: απαραίτητο για εύκολη αναφορά στη συλλογή στοιχείων.
- Τύπος δεδομένων: απαραίτητο για τον έλεγχο τύπου και την ακεραιότητα των δεδομένων.
- Στοιχεία: οι τιμές δεδομένων που υπάρχουν στον πίνακα.
Γιατί χρειαζόμαστε πίνακες;
- Οι πίνακες είναι ιδανικοί για την αποθήκευση πολλαπλών τιμών σε μία μόνο μεταβλητή.
- Επεξεργάζονται πολλές τιμές εύκολα και γρήγορα.
- Η ταξινόμηση και η αναζήτηση τιμών είναι ευκολότερη με τους πίνακες.
Δημιουργία πίνακα σε Python
In Python, οι πίνακες διαφέρουν από τις λίστες: μια λίστα μπορεί να περιέχει στοιχεία διαφορετικών τύπων δεδομένων, ενώ ένας πίνακας μπορεί να περιέχει μόνο στοιχεία του ίδιου τύπου δεδομένων. Python έχει μια ξεχωριστή ενότητα για τον χειρισμό πινάκων, που ονομάζεται array, το οποίο πρέπει να εισαγάγετε πριν το χρησιμοποιήσετε.
Σημείωση: Ο πίνακας πρέπει να περιέχει πραγματικούς αριθμούς όπως ακέραιους και κινητήριους αριθμούς. Δεν επιτρέπονται συμβολοσειρές.
Ο ακόλουθος κώδικας δημιουργεί έναν ακέραιο πίνακα σε Python για την αποθήκευση υπολοίπων λογαριασμών:
import array
balance = array.array('i', [300, 200, 100])
print(balance)
Τρόποι για να δηλώσετε έναν πίνακα μέσα Python
Μπορείτε να δηλώσετε έναν πίνακα μέσα Python ενώ το αρχικοποιεί χρησιμοποιώντας την ακόλουθη σύνταξη:
arrayName = array.array(typecode, [array_items])
Σύνταξη του Array in Python
- προσδιορίσει: Καθορίστε ένα όνομα όπως κάνετε συνήθως για τις μεταβλητές.
- Ενότητες: Python έχει μια ειδική ενότητα που ονομάζεται "array" την οποία πρέπει πρώτα να εισαγάγετε.
- Μέθοδος: Η ενότητα πίνακα έχει μια μέθοδο για την αρχικοποίηση του πίνακα, λαμβάνοντας δύο ορίσματα - typecode και στοιχεία.
- Πληκτρολογήστε τον κωδικό: καθορίστε τον τύπο δεδομένων χρησιμοποιώντας τους διαθέσιμους κωδικούς τύπου (δείτε τον παρακάτω πίνακα).
- Στοιχεία: καθορίστε τα στοιχεία του πίνακα μέσα σε αγκύλες, για παράδειγμα [130, 450, 103].
Ο παρακάτω πίνακας παραθέτει τους διαθέσιμους κωδικούς τύπου για τους υποστηριζόμενους τύπους δεδομένων.
| Πληκτρολογήστε τον κωδικό | C Τύπος | Python Χαρακτηριστικά | Ελάχιστο μέγεθος (byte) |
|---|---|---|---|
| 'σι' | υπογεγραμμένο char | int | 1 |
| 'ΣΙ' | χωρίς υπογραφή char | int | 1 |
| "εσύ" | Py_UNICODE | Χαρακτήρας Unicode | 2 |
| 'h' | υπογεγραμμένος σύντομος | int | 2 |
| «Η» | χωρίς υπογραφή σύντομο | int | 2 |
| 'Εγώ' | υπογεγραμμένο ενθ | int | 2 |
| 'ΕΓΩ' | χωρίς υπογραφή int | int | 2 |
| 'μεγάλο' | υπογεγραμμένο μακρύ | int | 4 |
| 'ΜΕΓΑΛΟ' | χωρίς υπογραφή πολύ | int | 4 |
| 'φά' | φλοτέρ | φλοτέρ | 4 |
| 'ρε' | διπλασιαστεί | φλοτέρ | 8 |
Πώς να αποκτήσετε πρόσβαση σε μια συγκεκριμένη τιμή πίνακα;
Μπορείτε να αποκτήσετε πρόσβαση σε οποιοδήποτε στοιχείο πίνακα χρησιμοποιώντας το ευρετήριό του.
Σύνταξη:
arrayName[indexNum]
Παράδειγμα:
balance[1]
Πρόσβαση σε ένα στοιχείο πίνακα
Εδώ, αποκτήσαμε πρόσβαση στη δεύτερη τιμή του πίνακα χρησιμοποιώντας τον δείκτη 1. Η έξοδος είναι 200, η οποία είναι η δεύτερη τιμή του πίνακα ισορροπίας.
import array
balance = array.array('i', [300, 200, 100])
print(balance[1])
Παραγωγή:
200
Παράταξη Operaθέσεις σε Python
The Python Η ενότητα πίνακα παρέχει ξεχωριστές συναρτήσεις για λειτουργίες πίνακα. Αυτές είναι καταστροφικές μέθοδοι, που σημαίνει ότι η τροποποίηση αποθηκεύεται στη μεταβλητή πίνακα.
Κύριο θέμα
Αυτή η λειτουργία εισάγει ένα ή περισσότερα στοιχεία σε έναν πίνακα στην αρχή, στο τέλος ή σε οποιοδήποτε δεδομένο ευρετήριο. Αναμένει δύο ορίσματα: index και value.
arrayName.insert(index, value)
Παράδειγμα: Για να εισαγάγετε μια νέα τιμή αμέσως μετά τον δείκτη 1 (την τιμή 200), αναφέρετε τον δείκτη 2 στη μέθοδο εισαγωγής.
import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)
Παραγωγή:
array('i', [300, 200, 150, 100])
Διαγραφή
Αυτή η λειτουργία διαγράφει ένα στοιχείο από έναν πίνακα κατά τιμή, αποδεχόμενη ένα μόνο όρισμα. Μετά την εκτέλεσή της, τα στοιχεία αναδιατάσσονται και οι δείκτες ανατίθενται ξανά.
arrayName.remove(value)
Παράδειγμα:
import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)
Παραγωγή:
array('i', [300, 200, 100])
Αναζήτηση
Αυτή η λειτουργία αναζητά ένα στοιχείο με βάση την τιμή και επιστρέφει τον δείκτη του. Είναι μια μη καταστροφική μέθοδος, επομένως δεν αλλάζει τις τιμές του πίνακα.
arrayName.index(value)
Παράδειγμα:
import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))
Παραγωγή:
2
Ενημέρωση
Η ενημέρωση αντικαθιστά την υπάρχουσα τιμή σε ένα δεδομένο δείκτη χρησιμοποιώντας έναν απλό τελεστή ανάθεσης. (Python οι πίνακες δεν έχουν update() μέθοδος.)
arrayName[index] = value
Παράδειγμα: Για να αντικαταστήσετε το 150 (στον δείκτη 2) με το 145:
import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)
Παραγωγή:
array('i', [300, 200, 145, 100])
Τραβήξτε
Μπορείτε να διασχίσετε α Python πίνακας χρησιμοποιώντας έναν βρόχο:
import array
balance = array.array('i', [300, 200, 100])
for x in balance:
print(x)
Παραγωγή:
300
200
100
Δημιουργία πίνακα σε C++
C++ είναι πιο ευέλικτο από Python κατά τη δημιουργία πινάκων. Μπορείτε να δημιουργήσετε C++ συστοιχίες με τρεις τρόπους. Ο ακόλουθος κώδικας δημιουργεί έναν ακέραιο πίνακα σε C++ για την αποθήκευση υπολοίπων λογαριασμών:
#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;
}
Τρόποι για να δηλώσετε έναν πίνακα μέσα C++
Μπορείτε να δηλώσετε έναν πίνακα με τρεις τρόπους, ανάλογα με τις απαιτήσεις του προγράμματός σας.
Δήλωση ανά μέγεθος:
dataType arrayName[arraySize]; // e.g. int balance[3];
Δήλωση μόνο με στοιχεία πίνακα:
dataType arrayName[] = {array_items}; // e.g. int balance[] = { 300, 200, 100 };
Δήλωση ανά μέγεθος και είδη:
dataType arrayName[arraySize] = {array_items}; // e.g. int balance[3] = { 300, 200, 100 };
Πώς να αποκτήσετε πρόσβαση σε μια συγκεκριμένη τιμή πίνακα σε C++?
Πρόσβαση σε ένα στοιχείο πίνακα
#include <iostream>
using namespace std;
int main()
{
int balance[3] = { 300, 200, 100 };
cout << balance[1];
return 0;
}
Παραγωγή:
200
Παράταξη Operaθέσεις σε C++
Σε αντίθεση με Pythonσε C++ Πρέπει να προγραμματίσετε μόνοι σας τη λογική για λειτουργίες εισαγωγής, διαγραφής, αναζήτησης, ενημέρωσης και διέλευσης.
Κύριο θέμα
Η λογική εισαγωγής είναι: επανάληψη των στοιχείων του πίνακα, μετατόπιση σε μεγαλύτερο δείκτη και, στη συνέχεια, προσθήκη ενός νέου στοιχείου στον δεδομένο δείκτη. Το παρακάτω παράδειγμα έχει πέντε στοιχεία και εισάγει το 150 αμέσως μετά την τιμή 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]);
}
}
Παράταξη Operaθέσεις σε Java
Ας δημιουργήσουμε ένα πρόγραμμα στο Java που δέχεται το μέγεθος και τις τιμές των στοιχείων του πίνακα από τον χρήστη.
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] + " ");
}
}
}
Τροποποίηση ενός στοιχείου σε ένα Java Παράταξη
Ενημέρωση ενός στοιχείου με βάση τον δείκτη του.
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] + " ");
}
}
}
Στοιχεία πρόσβασης σε ένα Java Παράταξη
Εκτυπώστε όλα τα στοιχεία του πίνακα διασχίζοντας τον πίνακα.
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] + " ");
}
}
}





