<<Κακώς>> γραμμένη θεωρία στην Στοίβα

Ξεκίνησε από Exit(), 18 Μαΐου 2016, 10:01:38 ΜΜ

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

Exit()

Με βάση το βιβλίο υποστηρίζεται πως κατα την διαδικασία της ώθησης στοιχείου στην κορυφή της στοίβας, η διαδικασία θα πρέπει να ελέγχει αν η στοίβα ειναι γεμάτη, όποτε λέγεται ότι συμβαίνει υπερχείλιση. Αντίθετα κατα την απώθηση στοιχείου απο την στοίβα, η διαδικασία θα πρέπει να ελέγχει αν η στοίβα εχει τουλάχιστον ενα στοιχείο, όποτε γίνεται υποχειλιση.

Αν έδινα την παρακάτω απάντηση(-- που μου φαίνεται και πιο σωστη--) στο ερώτημα, Τι θα πρέπει να ελέγχεται κατα την εισαγωγη/εξαγωγή στοιχείου στην κορυφη της στοίβας, θα ήταν λάθος;

Κατα την εισαγωγή(ώθηση) στοιχείου στην κορφή της στοίβας, αναγκαίο ειναι να ελέγχεται αν η στοίβα ειναι γεμάτη ώστε να αποτραπεί η υπερχείλιση. Αντίθετα κατα την εξαγωγή στοιχείου απο την στοίβα, απαραίτητο ειναι να ελέγχεται αν η στοίβα ειναι ΑΔΙΑ ώστε να αποτραπεί η υποχειλιση.

Γνώμες; Ευχαριστώ πολυ!

itt

Εγώ πάντως δεν καταλαβαίνω τι ρώτας. Μια στοίβα που δεν περιέχει ούτε ένα στοιχείο είναι άδεια. Πώς αυτό που έγραψες εσύ διαφέρει από αυτό που παρέθεσες;

amavidis

Αν εννοείς την "αποτροπή", πιστεύω ότι η απάντησή σου θα ήταν μια χαρά. Το βιβλίο εκφράζεται κάπως γενικά, υποχείλιση και υπερχείλιση είναι ανεπιθύμητες καταστάσεις. Η υλοποίηση ενός αλγόριθμου θα επέλεγε την κατάλληλη διαχείρισή τους.

Exit()

Ίσως να μην μπορω να το κατανοήσω ο ίδιος αλλα για να γίνει υποχειλιση θα πρέπει η στοίβα να ειναι ΑΔΙΑ και τότε να δοκιμάσουμε να βγάλουμε κάποιο ανύπαρκτο στοιχείο άρα όπως κατα την ώθηση ελέγχουμε αν ειναι γεμάτη ετσι και για την απώθηση θα πρέπει να ελέγχουμε αν ειναι αδια και οχι αν εχει ενα στοιχείο. Σωστά;

itt

Παράθεση από: Exit() στις 19 Μαΐου 2016, 01:43:11 ΜΜ
Ίσως να μην μπορω να το κατανοήσω ο ίδιος αλλα για να γίνει υποχειλιση θα πρέπει η στοίβα να ειναι ΑΔΙΑ και τότε να δοκιμάσουμε να βγάλουμε κάποιο ανύπαρκτο στοιχείο άρα όπως κατα την ώθηση ελέγχουμε αν ειναι γεμάτη ετσι και για την απώθηση θα πρέπει να ελέγχουμε αν ειναι αδια και οχι αν εχει ενα στοιχείο. Σωστά;

Τι εννοείς;  Αν είναι άδεια δεν θα έχει ένα στοιχείο, αν έχει ένα στοιχείο δεν είναι άδεια.

Άμα πας να κάνεις pop και έχει τουλάχιστον ένα στοιχείο τότε είσαι οκ, άμα πας να κάνεις pop και δεν έχει ούτε ένα στοιχείο (άρα είναι άδεια) underflow. Δεν νομίζω ότι διαφέρει σε κάτι με αυτό που έγραψες.