AtticaDreamer Δημοσ. 3 Ιουνίου 2015 Δημοσ. 3 Ιουνίου 2015 (επεξεργασμένο) καλημέρα παιδία! στο insomnia είμαι καινούριος οπότε.... ...Καλώς σας βρήκα :-D Τελός πάντων , έχω ενα πάθος με την συγραφή διάφορων μικρών και μεγάλων tutorials προγραμματισμού. παρακινούμενος απο αυτό το "πάθος" δημιούργησα ενα tutorial , μια μικρή εισαγωγή (30 σελίδες δεν το λες μικρό αλλα τεσπα..)πάνω στην δημιουργία γραμμικών λίστων σε C . έτσι θα ήθελα την ειλικρινή σας γνώμη πάνω σε αυτό. προτιμούνται οι κακιές κριτικές,λόγω του οτι θα με βοηθήσουν να το βελτιώσω. Ευχαριστώ για τον χρόνο σας!και όλους αυτούς που θα μου πούν την γνώμη τους προκαταβολικά το tutorial,μαζί με τον κώδικα του είναι ανεβασμένα Site: εδω Επεξ/σία 3 Ιουνίου 2015 από AtticaDreamer 1
imitheos Δημοσ. 3 Ιουνίου 2015 Δημοσ. 3 Ιουνίου 2015 Δεν το διάβασα ακόμη αλλά από τις μικρογραφίες που έχεις, πώς σκέφτηκες τα ConnectionAddress{, Back} ? Εκτός ότι δεν τα έχω ξαναδεί πουθενά να αναφέρονται έτσι, πιστεύεις πως περνάνε το νόημα της δομής στον αναγνώστη ? Προσπαθώντας να το διαβάσω σαν αρχάριος, προσωπικά δεν κατάλαβα τι κάνει η δομή. Αντίθετα, οι ευρέως χρησιμοποιούμενοι όροι next, prev, και να μην γνωρίζω C, μου δίνουν αμέσως να καταλάβω τι παίζει. 1
AtticaDreamer Δημοσ. 3 Ιουνίου 2015 Μέλος Δημοσ. 3 Ιουνίου 2015 Τα ConnectionAddress και ConnectionAddressBack όντως αντιπροσωπεύουν τα next και prev.μα θέλοντας να δώσω εμφάση στο γεγονος οτι στις συγκεκριμένες μεταβλητές δείκτη αποθηκεύονται διευθύνσεις του επόμενου και προηγούμενου κόμβου αντίστοιχα χρησιμοποιήσα τα συγκεκριμένα ονόματα.θα ήταν προτιμοτερο να χρησιμοποιούσα τα next και prev? το έκανα χάριν ευκολότερης κατανόησης απο τον τελείως αρχάριο χρήστη. οπότε θα ήταν καλύτερο να το αλλάξω?
migf1 Δημοσ. 3 Ιουνίου 2015 Δημοσ. 3 Ιουνίου 2015 next και prev είναι το στάνταρ, οπότε συμφωνώ με τον ημίθεο. Επίσης, δεν ξέρω αν υπάρχουν στανταρισμένες μεταφράσεις των αγγλικών όρων, αλλά αν υπάρχουν ίσως είναι καλή ιδέα να τις αναζητήσεις και να τις χρησιμοποιήσεις. Π.χ. τα graphs νομίζω συναντώνται συχνότερα ως γράφοι αντί για γραφήματα. Μπράβο για την προσπάθεια και το μεράκι. Μην το αφήσεις. Στο link της υπογραφής μου έχω ανεβάσει κι εγώ μερικές σημειώσεις για απλά-συνδεδεμένες λίστες.
AtticaDreamer Δημοσ. 3 Ιουνίου 2015 Μέλος Δημοσ. 3 Ιουνίου 2015 ενταξεί! θα τα αλλάξω σε όλη την έκταση του Tutorial καθώς και θα αναζητησω και πιθανούς αλλους όρους και την ελληνική μετάφραση τους! Τίποτε άλλο καλό ή κακό που παρατηρήσατε!? πείτε μου την γνώμη σας Οι σημειώσεις σου είναι εξαιρετικές καθώς και το site σου είναι πολυ καλό! @migf1
migf1 Δημοσ. 4 Ιουνίου 2015 Δημοσ. 4 Ιουνίου 2015 Οι σημειώσεις σου είναι εξαιρετικές καθώς και το site σου είναι πολυ καλό! @migf1 Σε ευχαριστώ για τα καλά σου λόγια. ενταξεί! θα τα αλλάξω σε όλη την έκταση του Tutorial καθώς και θα αναζητησω και πιθανούς αλλους όρους και την ελληνική μετάφραση τους! Τίποτε άλλο καλό ή κακό που παρατηρήσατε!? πείτε μου την γνώμη σας Έριξα μια "διαγώνια" ματιά πριν από λίγο. Για να είμαι ειλικρινής, υπάρχουν αρκετά πράγματα που χρειάζονται διόρθωση κατά την άποψή μου. Το βασικότερο είναι πως "ανακατεύεις" ορολογίες και έννοιες ως κοινές για διάφορα data-structures. Αυτό είναι εσφαλμένο, και είναι κρίμα για κάποιον αρχάριο να τα πρωτο-δει/εντυπώσει λάθος. Για παράδειγμα, η push() είναι "πράξη" στοιβών, ενώ εσύ την χρησιμοποιείς ως ορολογία και για τις ουρές και για τις generic singly & doubly linked lists, κλπ. Κάτι παρόμοιο κάνεις και με την pop(). Οι (ας τις πούμε αντίστοιχες) πράξεις για ουρές είναι οι enqueue() και dequeue(), οι οποίες δεν αναφέρονται καθόλου. Ένα άλλο σημείο που θεωρείται (και στην προκειμένη περίπτωση είναι) κακή πρακτική, αφορά τις καθολικές μεταβλητές. Οι συναρτήσεις διαχείρισης λιστών (είτε απλών, είτε διπλών, είτε κυκλικών, είτε οτιδήποτε) είθισται να παίρνουν την λίστα ως όρισμα, και μάλιστα κατά προτίμηση ως 1ο όρισμα ώστε να διευκολύνεται η σημειολογία, η ευκρίνεια, το scalability, το ενδεχόμενο information hiding, κλπ. Στα παραδείγματα σου όλες οι push() και pop() στηρίζονται σε καθολικό ορισμό των λιστών. Από την στιγμή που ο κάθε τύπος λίστας έχει διαφορετικές ιδιότητες & πράξεις, ανεξάρτητα από την εσωτερική της υλοποίηση, είναι πιο φρόνιμο να τις παρουσιάζεις ξεχωριστά, σε ξεχωριστή ενότητα για τον κάθε τύπο λίστας, μαζί με τις πράξεις της. Ελπίζω να κατανοείς πως δεν προσπαθώ να σε αποθαρρύνω. Προσπαθώ να σε βοηθήσω να πετύχεις καλύτερο αποτέλεσμα.
vacilis Δημοσ. 4 Ιουνίου 2015 Δημοσ. 4 Ιουνίου 2015 Αν και δεν το διάβασα ακόμη το tutorials σου φαίνεται κάλο εκ πρώτης όψεως. Δηλαδή δεν πρόκειται για προχειροδουλεια. Πάντως αυτό ο tutorial σου είναι πολύ κάλο: https://www.dropbox.com/s/b9n3frxttdniq9h/SpaceRock%20Escape%20Project%20P1.pdf?dl=0 Συνέχισε έτσι. Eπισης. το site σου θελε λίγη δουλίτσα ακόμη για να ει ναι πιο user-friendly..
AtticaDreamer Δημοσ. 5 Ιουνίου 2015 Μέλος Δημοσ. 5 Ιουνίου 2015 migif ευχαριστω για τις ευστοχες παρατηρησειςοπότε θα ήταν συνετό , να χωρισω αυτο το tutorial σε μικροτερα , (για μονη συνδεδεμενη λιστα , διπλα συνδεδεμένη λιστα κλτπ και έπειτα για ουρές και στοίβες ) έτσι ώστε να φαίνονται καθαρότερα οι διαφορές μεταξυ των τύπων λιστών. vacilis ευχαριστω πολυ! στο συγκεκριμένο tutorial υπάρχουν 3 μέρη , τα οποία θα δημοσιευτούν σύντομά 1
migf1 Δημοσ. 6 Ιουνίου 2015 Δημοσ. 6 Ιουνίου 2015 migif ευχαριστω για τις ευστοχες παρατηρησεις οπότε θα ήταν συνετό , να χωρισω αυτο το tutorial σε μικροτερα , (για μονη συνδεδεμενη λιστα , διπλα συνδεδεμένη λιστα κλτπ και έπειτα για ουρές και στοίβες ) έτσι ώστε να φαίνονται καθαρότερα οι διαφορές μεταξυ των τύπων λιστών. ... Κατά την άποψή μου ναι. Αλλά είναι απλά η άποψή μου, ίσως είναι καλή ιδέα να πάρεις κι άλλες γνώμες. Σε ότι αφορά πάντως τις στοίβες, τις ουρές, κλπ, επί της ουσίας πρόκειται για abstract data types, με την έννοια πως η εσωτερική τους υλοποίηση δεν είναι απαραίτητο να γίνει με λίστα . Μπορεί ας πούμε να γίνει με array. Καλό είναι να είναι ξεκάθαρο αυτό, και σε σένα που γράφεις το tutorial και στους αναγνώστες σου. Γενικώς το πεδίο "data structures and algorithms" είναι και ευρύ και απαιτητικό όσο προχωράει κανείς.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα