Εύρεση ελάχιστου στοιχείο σε ουρά

Ξεκίνησε από G.S., 22 Απρ 2023, 08:20:33 ΜΜ

« προηγούμενο - επόμενο »

G.S.

Μια διευκρίνιση...θα μπορούσα μια ουρά να την " προσπελασω" με χρήση κάποιας ΓΙΑ  για να βρω πχ ενα min ή πρέπει να κινηθώ με τις λειτουργίες της  εισαγωγής και εξαγωγής αποκλειστικά? 
Σιαφάκας Γιώργος
ΠΕ19

petrosp13

Το συμπέρασμα στο οποίο καταλήξαμε μετά από συζήτηση εδώ είναι ότι μια ουρά είναι μια φιλοσοφία οργάνωσης των δεδομένων με τρόπο FIFO, που υλοποιείται στο μάθημα μας με πίνακα αλλά δεν θα πρέπει να εκλαμβάνεται σαν ένας οποιοσδήποτε πίνακας που μπορεί να "τρέξει" με τους βασικούς αλγορίθμους των πινάκων
Άρα, αν βασιστούμε στο παράδειγμα του σχολικού με το πλοίο που αδειάζει χρησιμοποιώντας διαδοχικές εξαγωγές, καλό θα είναι να κινηθούμε σε αυτό το πλαίσιο
Από εκεί και πέρα, άλλη μια από τις εκατοντάδες ασάφειες που δεν θα διευκρινιστούν μάλλον ποτέ...
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Κανένας

#2
Παράθεση από: G.S. στις 22 Απρ 2023, 08:20:33 ΜΜΜια διευκρίνιση...θα μπορούσα μια ουρά να την " προσπελασω" με χρήση κάποιας ΓΙΑ  για να βρω πχ ενα min ή πρέπει να κινηθώ με τις λειτουργίες της  εισαγωγής και εξαγωγής αποκλειστικά?
Όταν επιλέγουμε να αναπαραστήσουμε τα δεδομένα μιας εφαρμογής με τη μορφή μιας στοίβας ή μιας ουράς,
σημαίνει ότι οι μόνες λειτουργίες που χρειαζόμαστε για την επεξεργασία τους είναι η ώθηση, η απώθηση
και η εισαγωγή, εξαγωγή αντίστοιχα.
Αν χρειαζόμαστε να διασχίσουμε τα δεδομένα της δομής θα επιλέξουμε λίστα.
Γι' αυτό το λόγο οι ασκήσεις με στοίβα και ουρά πρέπει να περιορίζονται σ' αυτές τις διεργασίες.
Το ερώτημα που θέτεις δημιουργείται απ' την άστοχη εκφώνηση της άσκησης όταν μας ζητάει να χειριστούμε
αυτές τις δομές σαν λίστες.
Βέβαια η σύγχυση δημιουργείται λόγω της υλοποίησής τους με πίνακα.
Ένας κανόνας για το ποιες διεργασίες επιτρέπεται να χρησιμοποιούμε στη στοίβα και την ουρά σε υλοποίηση με πίνακα είναι να εφαρμόζουμε μόνο αυτές που έχουμε τη δυνατότητα να εφαρμόσουμε σε μια δυναμική υλοποίησής τους.
Νικηφόρος Μανδηλαράς
ΓΕΛ Νάξου "Μανώλης Γλέζος"
https://blogs.sch.gr/nobody/

epsilonXi

από τη μία θα πεις γίνεται:

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

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

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

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

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



αλλά από την άλλη θα πεις ... ΓΙΑΤΙ;

George Eco

Εξάγεις ένα πρός ένα τα στοιχεία σε πίνακα.  Κάνεις αυτό που θες και μετά τα Εισάγεις φροντίζοντας να έχεις σωστο front.
Αλλά για ποιο λόγο; Δε θα ήταν καλό θέμα να πέσει και θα πήγαινε κόντρα στη φιλοσοφία του μαθήματος (παπαγαλία εισαγωγή εξαγωγή ως προαπαιτούμενο) .