Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Δομές δεδομένων => Μήνυμα ξεκίνησε από: G.S. στις 22 Απρ 2023, 08:20:33 ΜΜ

Τίτλος: Εύρεση ελάχιστου στοιχείο σε ουρά
Αποστολή από: G.S. στις 22 Απρ 2023, 08:20:33 ΜΜ
Μια διευκρίνιση...θα μπορούσα μια ουρά να την " προσπελασω" με χρήση κάποιας ΓΙΑ  για να βρω πχ ενα min ή πρέπει να κινηθώ με τις λειτουργίες της  εισαγωγής και εξαγωγής αποκλειστικά? 
Τίτλος: Απ: Εύρεση ελάχιστου στοιχείο σε ουρά
Αποστολή από: petrosp13 στις 22 Απρ 2023, 09:12:33 ΜΜ
Το συμπέρασμα στο οποίο καταλήξαμε μετά από συζήτηση εδώ είναι ότι μια ουρά είναι μια φιλοσοφία οργάνωσης των δεδομένων με τρόπο FIFO, που υλοποιείται στο μάθημα μας με πίνακα αλλά δεν θα πρέπει να εκλαμβάνεται σαν ένας οποιοσδήποτε πίνακας που μπορεί να "τρέξει" με τους βασικούς αλγορίθμους των πινάκων
Άρα, αν βασιστούμε στο παράδειγμα του σχολικού με το πλοίο που αδειάζει χρησιμοποιώντας διαδοχικές εξαγωγές, καλό θα είναι να κινηθούμε σε αυτό το πλαίσιο
Από εκεί και πέρα, άλλη μια από τις εκατοντάδες ασάφειες που δεν θα διευκρινιστούν μάλλον ποτέ...
Τίτλος: Απ: Εύρεση ελάχιστου στοιχείο σε ουρά
Αποστολή από: Κανένας στις 22 Απρ 2023, 10:08:03 ΜΜ
Παράθεση από: G.S. στις 22 Απρ 2023, 08:20:33 ΜΜΜια διευκρίνιση...θα μπορούσα μια ουρά να την " προσπελασω" με χρήση κάποιας ΓΙΑ  για να βρω πχ ενα min ή πρέπει να κινηθώ με τις λειτουργίες της  εισαγωγής και εξαγωγής αποκλειστικά?
Όταν επιλέγουμε να αναπαραστήσουμε τα δεδομένα μιας εφαρμογής με τη μορφή μιας στοίβας ή μιας ουράς,
σημαίνει ότι οι μόνες λειτουργίες που χρειαζόμαστε για την επεξεργασία τους είναι η ώθηση, η απώθηση
και η εισαγωγή, εξαγωγή αντίστοιχα.
Αν χρειαζόμαστε να διασχίσουμε τα δεδομένα της δομής θα επιλέξουμε λίστα.
Γι' αυτό το λόγο οι ασκήσεις με στοίβα και ουρά πρέπει να περιορίζονται σ' αυτές τις διεργασίες.
Το ερώτημα που θέτεις δημιουργείται απ' την άστοχη εκφώνηση της άσκησης όταν μας ζητάει να χειριστούμε
αυτές τις δομές σαν λίστες.
Βέβαια η σύγχυση δημιουργείται λόγω της υλοποίησής τους με πίνακα.
Ένας κανόνας για το ποιες διεργασίες επιτρέπεται να χρησιμοποιούμε στη στοίβα και την ουρά σε υλοποίηση με πίνακα είναι να εφαρμόζουμε μόνο αυτές που έχουμε τη δυνατότητα να εφαρμόσουμε σε μια δυναμική υλοποίησής τους.
Τίτλος: Απ: Εύρεση ελάχιστου στοιχείο σε ουρά
Αποστολή από: epsilonXi στις 23 Απρ 2023, 08:16:30 ΜΜ
από τη μία θα πεις γίνεται:

μέγιστο σε ουρά Α[Ν]:

Κώδικας [Επιλογή]
μαξ <- Α[φροντ]
πλ <- ρεαρ-φροντ+1
για χ από 1 μέχρι πλ
  κάλεσε εξαγωγή (Α, φροντ, ρεαρ, χ, done)
  αν χ > μαξ τότε
    μαξ <- χ
  τέλος_αν
  κάλεσε εισαγωγή (Α, φροντ, ρεαρ, χ, done)
τέλος_επανάληψης


μέγιστο σε στοίβα Α[Ν], με τη βοήθεια άδειας στοίβας Β[Ν]:

Κώδικας [Επιλογή]
μαξ <- Α[τοπ]
οσο τοπ > 0 επανάλαβε
  κάλεσε απώθηση (Α, τοπ, χ)
  αν χ > μαξ τότε
    μαξ <- χ
  τέλος_αν
  κάλεσε ώθηση (Β, τοπβ, χ)
τέλος_επανάληψης

οσο τοπβ > 0 επανάλαβε
  κάλεσε απώθηση (Β, τοπβ, χ)
  κάλεσε ώθηση (Β, τοπ, χ)
τέλος_επανάληψης



αλλά από την άλλη θα πεις ... ΓΙΑΤΙ;
Τίτλος: Απ: Εύρεση ελάχιστου στοιχείο σε ουρά
Αποστολή από: George Eco στις 23 Απρ 2023, 11:41:03 ΜΜ
Εξάγεις ένα πρός ένα τα στοιχεία σε πίνακα.  Κάνεις αυτό που θες και μετά τα Εισάγεις φροντίζοντας να έχεις σωστο front.
Αλλά για ποιο λόγο; Δε θα ήταν καλό θέμα να πέσει και θα πήγαινε κόντρα στη φιλοσοφία του μαθήματος (παπαγαλία εισαγωγή εξαγωγή ως προαπαιτούμενο) .