Οι μη γραμμικές δομές δεδομένων είναι δομές στις οποίες τα στοιχεία δεν είναι διατεταγμένα σε μια γραμμική ακολουθία. Αντίθετα, τα στοιχεία μπορούν να έχουν πολλαπλές σχέσεις μεταξύ τους, δημιουργώντας πιο σύνθετες δομές. Οι βασικότερες μη γραμμικές δομές δεδομένων είναι:
Οι μη γραμμικές δομές χρησιμοποιούνται για την αναπαράσταση πιο σύνθετων σχέσεων μεταξύ δεδομένων, όπως ιεραρχίες, δίκτυα, και σχέσεις πολλών προς πολλούς.
Παρακάτω είναι ένα παράδειγμα ενός δέντρου:
Α (Ρίζα)
/ \
Β Γ
/ \ \
Δ Ε Ζ
Εδώ, ο κόμβος Α είναι η ρίζα, οι Β και Γ είναι παιδιά του Α, και οι Δ, Ε, Ζ είναι φύλλα.
Παρακάτω είναι ένα παράδειγμα ενός δυαδικού δέντρου αναζήτησης:
8 (Ρίζα)
/ \
3 10
/ \ \
1 6 14
/ \ /
4 7 13
Εδώ, ο κόμβος 8 είναι η ρίζα, και το δέντρο ικανοποιεί την ιδιότητα του BST.
Παρακάτω είναι ένα παράδειγμα ενός μη κατευθυνόμενου γράφου:
Α
/ \
Β---Γ
| |
Δ---Ε
Εδώ, οι κόμβοι Α, Β, Γ, Δ, Ε είναι συνδεδεμένοι με ακμές.
Παρακάτω παρουσιάζεται μια σύγκριση των βασικών μη γραμμικών δομών δεδομένων:
| Χαρακτηριστικό | Δέντρα (Trees) | Δυαδικά Δέντρα (Binary Trees) | Γράφοι (Graphs) |
|---|---|---|---|
| Δομή | Ιεραρχική | Ιεραρχική (2 παιδιά ανά κόμβο) | Δίκτυο κόμβων και ακμών | \n
| Κόμβοι | Ένας γονέας, πολλά παιδιά | Ένας γονέας, 2 παιδιά | Συνδεδεμένοι με ακμές |
| Αναζήτηση | O(n) | O(log n) (ισορροπημένο) | O(V + E) |
| Εισαγωγή | O(1) (στο τέλος) | O(log n) (ισορροπημένο) | O(1) (κόμβος), O(V) (ακμή) |
| Διαγραφή | O(1) (φύλλο) | O(log n) (ισορροπημένο) | O(V + E) |
| Χρήσεις | Ιεραρχικά δεδομένα | Γρήγορη αναζήτηση, ταξινόμηση | Δίκτυα, χάρτες, αλγόριθμοι μονοπατιού |