Παράθεση από: alkisg στις 24 Ιουν 2022, 09:20:03 ΠΜΑν όμως διδάσκουμε την θεωρία ουρών με πολυπλοκότητα Ο(Ν) αντί για Ο(1), να μην μας κακοφαίνεται μετά αν αργούν τα Windows και το Internet, εμείς οι ίδιοι φταίμε που τα διδάσκουμε λάθος...
Παράθεση από: Αναστάσης Κολιόπουλος στις 23 Ιουν 2022, 05:39:15 ΜΜ Φέτος τελείωσα την τρίτη λυκείου και έχοντας μπει πολλές φορές στο στέκι θέλω να προτείνω κάτι που αφορά την υλοποίηση της ουράς (γνωρίζω ότι έχει σχολιαστεί σε προηγούμενα θέματα). Το υπουργείο πιστεύω ότι έχει δώσει έναν κώδικα χωρίς κάποια ιδιαίτερη λογική, καθώς η ουρά μέχρι να αδειάσει είναι μίας χρήσης κλπ κλπ. Αντίθετα με την στοίβα η οποία ακολουθεί, κατά την γνώμη μου, σωστή λογική καθώς προσαρμόζεται ο δείκτης top ανάλογα με τα στοιχεία της στοίβας, αγνοώντας τα υπόλοιπα που υπάρχουν στον πίνακα με τον οποίο η ίδια υλοποιείται. Έτσι ακολουθώντας την ίδια λογική και σκεφτόμενος ότι αυτή η προσέγγιση αντικατοπτρίζει περισσότερο την πραγματικότητα παραθέτω τους εξής κώδικες:
ΕΙΣΑΓΩΓΗ:
Αν rear = n τότε
Γράψε "Γεμάτη ουρά"
αλλιώς
rear <- rear + 1
Διάβασε ουρά[rear]
τέλος_αν
ΕΞΑΓΩΓΗ:
Αν rear = 0 τότε
Γράψε "Άδεια ουρά"
αλλιώς
Γράψε "Εξάγεται το ",ουρά[1]
Για i από 1 μέχρι rear - 1 ! Ολίσθηση στοιχείων της ουράς στις πρώτες θέσεις, όπως σε μία πραγματική κατάσταση ουράς
ουρά <- ουρά[i+1]
τέλος_επανάληψης
rear <- rear - 1
τέλος_αν
Παρατηρήσεις:
i. Ο δείκτης rear αρχικοποιείται με τιμή μηδέν ( rear <- 0 ).
ii. Ο δείκτης front είναι περιττός.
iii. Γνωρίζω ότι η ολίσθηση υπάρχει στην άσκηση με το ταχυδρομείο αλλά ο κώδικας εκεί είναι αχρείαστα πολύπλοκος, γιαυτό και προτείνω έναν πιο απλό κώδικα.