Η λύση απαιτεί τρία σταδια:
Αρχικό Στάδιο
Ετοιμασία ουράς FIFO με δυο μεταβλητές ΜΕΓΙΣΤΟΣ και ΔΕΥΤΕΡΟΣ_ΜΕΓΙΣΤΟΣ με αρχικές τιμές το πρώτο στοιχείο του ΠΙΝΑΚΑ.
Στάδιο Επεξεργασίας
α) Γίνεται
για κάθε i στοιχείο του Πίνακα ξεκινώντας από το δεύτερο (δεν έχει νόημα ο Πινακας με ένα στοιχείο για το πρόγραμμα αυτό).
β)Με μια ΑΝ προσδιορίζουμε το Γεγονός ( ΜΕΓΙΣΤΟΣ<Α[i] ) και προβαίνουμε ανάλογα στην τροφοδοσία της λίστας...(Πρώτο εισερχόμενο Πρώτο εξερχόμενο): Πρώτα αντιογράφουμε την τιμή της ΜΕΓΙΣΤΟΣ στην ΔΕΥΤΕΡΟΣ_ΜΕΓΙΣΤΟΣ και μετά αντιγράφουμε την νέα ΜΕΓΙΣΤΟΣ (από τον πίνακα)
Τελικό Στάδιο
Στο τέλος έχουμε την ουρά τακτοποιημένη και επιστρέφουμε ως αποτέλεσμα τη ΔΕΥΤΕΡΟΣ_ΜΕΓΙΣΤΟΣ.
Θεωρία:
Οι λίστες FIFO είναι σαν παράσταση οι ουρές στις τράπεζες: Ο πρώτος που προσέρχεται, αυτός εξυπηρετείται. Αν έχουμε δύο και τον καθένα τον επιλέγουμε με το γεγονός ΜΕΓΙΣΤΟΣ τότε ο δεύτερος που θα έρχεται στην ουρά θα είναι ο αμέσως επόμενος ΜΕΓΙΣΤΟΣ από τον πρώτο. Άρα ο πρώτος θα είναι πάντα ο ΔΕΥΤΕΡΟΣ ΜΕΓΙΣΤΟΣ...
Να προσθέσω ότι η άλλου τύπου λίστα είναι η LIFO η τελευταία τιμή που μπαίνει βγαίνει πρώτη και παραστατικά είναι ο σωρός χαρτιών τράπουλας που αυξάνει αφήνοντας φύλλα το ένα πάνω στο άλλο και αδείαζει παίρνοντας φύλλα από πάνω....(αν παίρναμε από κάτω τότε θα είχαμε FIFO).
FIFO:First In First Out
LIFO:Last In First Out
http://en.wikipedia.org/wiki/FIFO