Αποστολέας Θέμα: Ερώτηση για άδεια ουρά  (Αναγνώστηκε 820 φορές)

georgia_kitsou

  • Οπαδός
  • **
  • Μηνύματα: 19
Ερώτηση για άδεια ουρά
« στις: 08 Ιαν 2016, 09:49:47 πμ »

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

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

hobbit

  • Οπαδός
  • **
  • Μηνύματα: 10
Απ: Ερώτηση για άδεια ουρά
« Απάντηση #1 στις: 08 Ιαν 2016, 10:19:07 πμ »
Αν δεν έχει γίνει εισαγωγή στοιχείου, στην αρχή έχουμε front=1 και rear=0.
Στη συνέχεια για να ελέγξουμε αν είναι άδεια θα πρέπει front > rear.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3532
  • to Iterate is human to Recurse divine
Απ: Ερώτηση για άδεια ουρά
« Απάντηση #2 στις: 08 Ιαν 2016, 01:03:32 μμ »
Από τη στιγμή που στο βιβλίο οι δείκτες front,rear δείχνουν στο πρώτο και τελευταίο στοιχείο της ουράς αντίστοιχα νομίζω πως η πιο λογική υλοποίηση διδακτικά αλλά και εννοιολογικά είναι αρχικά να ισχύει front = rear = 0. Αν χωρίς στοιχεία έχεις front = 1 αυτό σημαίνει ότι ο front δείχνει στο πρώτο στοιχείο προς διαγραφή και αυτό είναι το 1. Φυσικά αυτό έχει το πρόβλημα ότι πρέπει να διαχωρίσεις την περίπτωση της εισαγωγής/διαγραφής του μοναδικού στοιχείου της ουράς.
  Νομίζω ότι η καλύτερη υλοποίηση είναι αυτή από θέμα μοντελοποίησης. Τώρα όσον αφορά το θέμα της κυκλικής ουράς αυτό θα έλεγα ότι είναι προχωρημένο και για αυτό φαντάζομαι οι οδηγίες λένε πως δεν πρόκειται να μπουν ασκήσεις με ουρά γενικότερα παρά μόνο με στοίβα.

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