Ερώτηση για άδεια ουρά

Ξεκίνησε από georgia_kitsou, 08 Ιαν 2016, 09:49:47 ΠΜ

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

georgia_kitsou


Καλημέρα σας και καλή χρονιά σε όλους με υγεία!  :)

  Θα ήθελα να ρωτήσω το εξής : στην υλοποίηση στοίβας με πίνακα, όταν η στοίβα είναι άδεια η μεταβλητή top έχει τιμή 0, σωστά; Στην υλοποίηση ουράς με πίνακα, αν θεωρήσουμε ότι έχουμε μία άδεια ουρά στην οποία δεν έχει γίνει εισαγωγή κανενός στοιχείου, τι τιμές πρέπει να έχουν οι μεταβλητές front και rear; Αν π.χ. πούμε front=rear =1, αυτό δε σημαίνει ότι υπάρχει ένα στοιχείο στηγν ουρά; Πώς μπορώ να δείξω ότι δεν υπάρχει κανένα στοιχείο;

  Ευχαριστώ πολύ,

hobbit

Αν δεν έχει γίνει εισαγωγή στοιχείου, στην αρχή έχουμε front=1 και rear=0.
Στη συνέχεια για να ελέγξουμε αν είναι άδεια θα πρέπει front > rear.

evry

Από τη στιγμή που στο βιβλίο οι δείκτες front,rear δείχνουν στο πρώτο και τελευταίο στοιχείο της ουράς αντίστοιχα νομίζω πως η πιο λογική υλοποίηση διδακτικά αλλά και εννοιολογικά είναι αρχικά να ισχύει front = rear = 0. Αν χωρίς στοιχεία έχεις front = 1 αυτό σημαίνει ότι ο front δείχνει στο πρώτο στοιχείο προς διαγραφή και αυτό είναι το 1. Φυσικά αυτό έχει το πρόβλημα ότι πρέπει να διαχωρίσεις την περίπτωση της εισαγωγής/διαγραφής του μοναδικού στοιχείου της ουράς.
  Νομίζω ότι η καλύτερη υλοποίηση είναι αυτή από θέμα μοντελοποίησης. Τώρα όσον αφορά το θέμα της κυκλικής ουράς αυτό θα έλεγα ότι είναι προχωρημένο και για αυτό φαντάζομαι οι οδηγίες λένε πως δεν πρόκειται να μπουν ασκήσεις με ουρά γενικότερα παρά μόνο με στοίβα.

ΥΓ. Φυσικά από τη στιγμή που κάνουμε "Αλγοριθμική" θα έπρεπε να μας απασχολεί μόνο η λειτουργία της Στοίβας και της Ουράς ως Αφηρημένων Τύπων Δεδομένων και όχι οι λεπτομέρειες της υλοποίησης. Αυτές δεν θα έπρεπε να φαίνονται.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr