e-ΜΑΘΗΜΑΤΑ |
Υλοποίηση ΟΥΡΑΣ με χρήση πίνακα |
ΠΡΟΓΡΑΜΜΑ ΟΥΡΑ
! Διαχείριση ουράς με χρήση πίνακα
ΜΕΤΑΒΛΗΤΕΣ
ΧΑΡΑΚΤΗΡΕΣ: A[10], απάντηση
ΑΚΕΡΑΙΕΣ: f, r, i, k
ΑΡΧΗ
! αρχικοποίηση δεικτών
f <- 0
r <- 0
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
! Μενού επιλογών
ΓΡΑΨΕ 'Δώστε 1: Εισαγωγή 2: Εξαγωγή 3: Αναδιοργάνωση 4:Εμφάνιση 9:έξοδος'
ΔΙΑΒΑΣΕ απάντηση
ΕΠΙΛΕΞΕ απάντηση
ΠΕΡΙΠΤΩΣΗ '1' ! Εισαγωγή
ΑΝ r = 10 ΤΟΤΕ
! έλεγχος υπερχείλισης
ΓΡΑΨΕ 'Γεμάτη ουρά'
ΑΛΛΙΩΣ
ΑΝ r = 0 ΚΑΙ f = 0 ΤΟΤΕ
! αν ήταν το στοιχείο εισάγεται σε κενή ουρά
! θα είναι ταυτόχρονα και τελευταίο (στην πρώτη θέση)
r <- 1
f <- 1
ΑΛΛΙΩΣ
! στη γενική περίπτωση το νέο στοιχείο εισάγεται στο τέλος της ουράς
r <- r + 1
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ 'Δώστε τιμή για εισαγωγή : '
ΔΙΑΒΑΣΕ A[r]
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ '2' ! Eξαγωγή
ΑΝ f = 0 ΤΟΤΕ
! έλεγχος για κενή ουρά
ΓΡΑΨΕ 'Αδεια ουρά'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Eξαγωγή : ', A[f]
A[f] <- ''!προαιρετικά για διαγραφή από τη μνήμη των στοιχείων που εξάγονται
ΑΝ f = r ΤΟΤΕ
f <- 0
r <- 0
ΑΛΛΙΩΣ
f <- f + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ '3' ! Αναδιοργάνωση (Ολίσθηση)
ΑΝ f > 1 ΤΟΤΕ
k <- 1
ΓΙΑ i ΑΠΟ f ΜΕΧΡΙ r
A[k] <- A[i]
k <- k + 1
! A [i - f + 1] <- A[i] ! χωρίς τη χρήση βοηθητικής μεταβλητής k
A[i] <- ''! για να διαγραφούν από τη μνήμη τα στοιχεία που μετακινούνται
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! ενημέρωση δεικτών
r <- k - 1
! r <- r - f + 1 ! εναλλακτικά χωρίς τη χρήση βοηθητικής μεταβλητής k
f <- 1
ΑΛΛΙΩΣ
ΑΝ f = 0 ΤΟΤΕ
ΓΡΑΨΕ 'Αδεια ουρά'
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Κανένα κενό στοιχείο στην αρχή'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ '4' ! Εμφάνιση
ΑΝ f > 0 ΤΟΤΕ
ΓΙΑ i ΑΠΟ f ΜΕΧΡΙ r
ΓΡΑΨΕ i, ': ', A[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Αδεια ουρά'
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ '9' ! Έξοδος
ΓΡΑΨΕ 'Τέλος'
ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Λάθος επιλογή'
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΜΕΧΡΙΣ_ΟΤΟΥ απάντηση = '9'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
|