ποιες πράξεις των δομών ορίζονται σε στοίβα-ουρά?

Ξεκίνησε από manpap, 04 Μαρ 2010, 01:58:32 ΜΜ

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

manpap

Τελικά, σε μία στοίβα όπως την ορίζει και την υλοποιεί το βιβλίο επιτρέπεται να κάνουμε αναζήτηση, ταξινόμηση κλπ? Ουσιαστικά από τις οκτώ λειτουργίες των δομών σε μία στοίβα μπορούν να γίνουν οι εισαγωγή (ώθηση) και διαγραφή (απώθηση) ενώ οι άλλες δεν έχουν λόγο ύπαρξης. Αυτά σε μία δυναμική στοίβα. Σε μία στατική υλοποίηση ?
Μπορούμε πούμε ότι γίνονται όλες εκτός εισαγωγής διαγραφής (μια και αυτές μόνο δε γίνονται σε ένα πίνακα)!!!!!
Συντηρώ το μυαλό μου ακοίμητο, λαγαρό, ανήλεο. Το αμολώ να παλεύει ακατάλυτα. Άλλο αργαστήρι να κάνω το σκοτάδι φως δεν έχω.
Ν. Καζαντζάκης

pgrontas

Προσωπικά θεωρώ ότι όπως και αν υλοποιείται η στοίβα (είτε στατικά/είτε δυναμικά) δεν έχουν νόημα οι άλλες λειτουργίες.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

Λάμπρος Μπουκουβάλας

Ο τρόπος με τον οποίο μελετάται το θέμα ουρά-στοίβα θυμίζει περισσότερο το ταμείο του κινηματογράφου και τα pringles (μετά το pop δεν έχεις stop). Πιστεύω ότι δε μπορώ να απαντήσω ξεκάθαρα στο ερώτημά σου.
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...

evry

Μάλιστα. Εκεί καταντήσαμε, να λέμε ότι στη στοίβα δεν μπορεί να γίνει εισαγωγή και διαγραφή επειδή υλοποιείται με πίνακα. Αλήθεια η ώθηση και η απώθηση τι είναι?
  Αναρωτιέμαι, από την στιγμή που μιλάμε για ψευδογλώσσα δεν θα έπρεπε να μιλάμε για τον ΑΤΔ Στοίβα στον οποίο δεν μας ενδιαφέρει η υλοποίηση και ο οποίος είναι δυναμικός αφού έχουμε εισαγωγή/διαγραφή στοιχείων?


Παράθεση από: manpap στις 04 Μαρ 2010, 01:58:32 ΜΜ
Σε μία στατική υλοποίηση ?
Μπορούμε πούμε ότι γίνονται όλες εκτός εισαγωγής διαγραφής (μια και αυτές μόνο δε γίνονται σε ένα πίνακα)!!!!!
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gthal

Σε ένα μαγαζί που πουλάει στοίβες (  :) ) υπάρχουν δύο μοντέλα κατασκευασμένα από δύο διαφορετικούς προγραμματιστές-κατασκευαστές. Ο πρώτος την έχει υλοποιήσει στατικά και ο δεύτερος δυναμικά. Μπαίνω εγώ στο μαγαζί σαν προγραμματιστής-χρήστης για να αγοράσω μια στοίβα και βλέπω ότι τα μοντέλα φαίνονται ολόιδια. Κάνουν και τα δύο ώθηση και απώθηση - μου κάνουν τη δουλειά. ( Ο τρόπος υλοποίησής τους δεν είναι ορατός σ' εμένα. Δεν ξέρω ότι η πρώτη κάνει ψευτο-εισαγωγή και ψευτο-διαγραφή κόμβων αλλά δε με νοιάζει). Αν διαβάσω τα τεχνικά χαρακτηριστικά τους τότε θα ξέρω ότι αν επιλέξω την πρώτη σαν ευκολότερη (και μάλλον φθηνότερη) λύση, θα έχω μεγάλο κίνδυνο υπερχείλισης κάποια στιγμή. Έτσι αν θέλω μια σοβαρή λύση, θα επιλέξω τη δεύτερη.

Με την παραπάνω ιστοριούλα προσπαθώ να δείξω ότι οι Δομές είναι abstract έννοιες και δεν αλλάζουν χαρακτήρα από το πώς υλοποιούνται. Μια Δομή παίρνει το χαρακτήρα της τόσο από το πώς χειρίζεται/δομεί τα δεδομένα, όσο και από το ποιες λειτουργίες υποστηρίζει πάνω τους. Δηλαδή μια στοίβα που υλοποιείται με πίνακα δεν είναι πίνακας αφού ο προγραμματιστής-χρήστης της μπορεί να ωθεί (εισάγει) και να απωθεί (εξάγει) στοιχεία (άσχετα αν στο κρυφό επίπεδο υλοποίησης δεν εισάγονται ή αφαιρούνται κόμβοι)
Διαφορετικά, αν δεχθούμε το αντίθετο, τότε (για την υλοποίηση με πίνακες πάντα)
στοίβα=πίνακας
ουρά=πίνακας
άρα στοίβα=ουρά=πίνακας
Αλλά δεν είναι. Αυτό που τα διαφοροποιεί και τα τρία είναι οι λειτουργίες τους.

Και για να απαντήσουμε στο συνάδελφο, συμφωνώ με την απάντηση του Παναγιώτη.
Φιλικά,
Γιώργος Θαλασσινός

evry


  Αυτό ακριβώς είναι και το νόημα του Αφηρημένου Τύπου Δεδομένων
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

manpap

Ευχαριστω πολύ παιδιά.
Εύχομαι να μη μπει ποτε σχετικό θέμα στις εξετάσεις γιατί οι μαθητές θα μπερδευτούν πολύ.
Από τότε που μπήκε πάντως εκείνο το θέμα με το ποιες πράξεις δεν μπορούν να υλοποιηθούν σε ένα πίνακα με προβλημάτιζε τι θα έπρεπε να απαντήσει κάποιος για μία στοίβα αντίστοιχα.
Άλλωστε μια και το έφερε η κουβέντα, τότε στις εξετάσεις η απάντηση ήθελε μόνο εισαγωγή και διαγραφή. Σύμφωνα όμως με το βασικό ορίσμό των πράξεων στο 3ο κεφάλαιο μπορέι σε ένα πίνακα να γίνει διαχωρισμός ή συγχώνευση; Στην ουσία οι δύο αυτές ενέργειες γίνονται με την πράξη της αντιγραφής, αφού ο πίνακας δεν 'σπάει" σε δύο ή περισσότερες, απλά αντιγράφεται μέρος των στοιχείων του σε άλλο πίνακα; Ή δεν είναι έτσι τα πράγματα; Ποια είναι η γνώμη σας;
Δηλαδή άν μπει ερώτηση σχετικά με την συγχώνευση σε πίνακες, από τη μία είναι μία τυπικά επεξεργασία (9.4) ταξινομημένων πινάκων και από τη άλλη δεν μπορεί να υλοποιηθει γιατί ο πίνακας δεν μπορεί να χωριστεί στα δύο? ???
Συντηρώ το μυαλό μου ακοίμητο, λαγαρό, ανήλεο. Το αμολώ να παλεύει ακατάλυτα. Άλλο αργαστήρι να κάνω το σκοτάδι φως δεν έχω.
Ν. Καζαντζάκης

P.Tsiotakis

οι κύριες λειτουργίες μιας στοίβας είναι η ώθηση και η απώθηση. Δε μας απασχολούν άλλες λειτουργίες.
Αντίστοιχα για την ουρά.

Πάντως σε έναν πίνακα που περιέχει ονόματα ανθρώπων που αναμένουν να εξυπηρετηθούν πχ στο ΚΤΕΟ δεν καταλαβαίνω γιατί να μην μπορεί να ψάξει κάποιος αν υπάρχει στην ουρά ο κος Αρβίλογλου και πχ σε πόση ώρα αναμένεται να εξυπηρετηθεί;;;

Λάμπρος Μπουκουβάλας

Επομένως ας δούμε (την ουρά και) τη στοίβα ως μονοδιάστατους πίνακες, που έχουν ως ιδιαίτερες λειτουργίες την ώθηση και την απώθηση.
Λάμπρος Μπουκουβάλας
MSc - MRes

http://blogs.sch.gr/lambrosbouk

Ο Θουκυδίδης  (που τον διαβάζουν οι ξένοι, αλλά όχι εμείς)  έγραφε: «Αταλαίπωρος τοις πολλοίς η ζήτησις της αληθείας, και επί τα ετοίμα μάλλον τρέπονται» (Ι, 20, 3). Οι περισσότεροι δηλαδή αναζητούν αβασάνιστα την αλήθεια και στρέφονται σε ό,τι βρίσκουν έτοιμο. Δεν προβληματίζονται...