Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

καλημέρα παιδία! στο insomnia είμαι καινούριος οπότε....

...Καλώς σας βρήκα :-D :-D

 

Τελός πάντων , έχω ενα πάθος με την συγραφή διάφορων μικρών και μεγάλων tutorials προγραμματισμού. παρακινούμενος απο αυτό το "πάθος" δημιούργησα ενα tutorial , μια μικρή εισαγωγή (30 σελίδες δεν το λες μικρό αλλα τεσπα..)πάνω στην δημιουργία γραμμικών λίστων σε C . έτσι θα ήθελα την ειλικρινή σας γνώμη πάνω σε αυτό. προτιμούνται οι κακιές κριτικές,λόγω του οτι θα με βοηθήσουν να το βελτιώσω.

Ευχαριστώ για τον χρόνο σας!και όλους αυτούς που θα μου πούν την γνώμη τους προκαταβολικά

 

το tutorial,μαζί με τον κώδικα του είναι ανεβασμένα Link.png Site: εδω

post-345780-0-64930000-1433321284_thumb.png

post-345780-0-53156600-1433321285_thumb.png

post-345780-0-11730400-1433321287_thumb.png

Επεξ/σία από AtticaDreamer
  • Like 1
Δημοσ.

Δεν το διάβασα ακόμη αλλά από τις μικρογραφίες που έχεις, πώς σκέφτηκες τα ConnectionAddress{, Back} ?

 

Εκτός ότι δεν τα έχω ξαναδεί πουθενά να αναφέρονται έτσι, πιστεύεις πως περνάνε το νόημα της δομής στον αναγνώστη ? Προσπαθώντας να το διαβάσω σαν αρχάριος, προσωπικά δεν κατάλαβα τι κάνει η δομή. Αντίθετα, οι ευρέως χρησιμοποιούμενοι όροι next, prev, και να μην γνωρίζω C, μου δίνουν αμέσως να καταλάβω τι παίζει.

  • Like 1
Δημοσ.

Τα ConnectionAddress και ConnectionAddressBack όντως αντιπροσωπεύουν τα next και prev.μα θέλοντας να δώσω εμφάση στο γεγονος οτι στις συγκεκριμένες μεταβλητές δείκτη αποθηκεύονται διευθύνσεις του επόμενου και προηγούμενου κόμβου αντίστοιχα χρησιμοποιήσα τα συγκεκριμένα ονόματα.θα ήταν προτιμοτερο να χρησιμοποιούσα τα next και prev? το έκανα χάριν ευκολότερης κατανόησης απο τον τελείως αρχάριο χρήστη. οπότε θα ήταν καλύτερο να το αλλάξω?

Δημοσ.

next και prev είναι το στάνταρ, οπότε συμφωνώ με τον ημίθεο. Επίσης, δεν ξέρω αν υπάρχουν στανταρισμένες μεταφράσεις των αγγλικών όρων, αλλά αν υπάρχουν ίσως είναι καλή ιδέα να τις αναζητήσεις και να τις χρησιμοποιήσεις. Π.χ. τα graphs νομίζω συναντώνται συχνότερα ως γράφοι αντί για γραφήματα.

 

Μπράβο για την προσπάθεια και το μεράκι. Μην το αφήσεις.

 

 

Στο link της υπογραφής μου έχω ανεβάσει κι εγώ μερικές σημειώσεις για απλά-συνδεδεμένες λίστες.

 

Δημοσ.

ενταξεί! θα τα αλλάξω σε όλη την έκταση του Tutorial

καθώς και θα αναζητησω και πιθανούς αλλους όρους και την ελληνική μετάφραση τους!

Τίποτε άλλο καλό ή κακό που παρατηρήσατε!? πείτε μου την γνώμη σας

 

 

Οι σημειώσεις σου είναι εξαιρετικές καθώς και το site σου είναι πολυ καλό! @migf1

Δημοσ.

 

Οι σημειώσεις σου είναι εξαιρετικές καθώς και το site σου είναι πολυ καλό! @migf1

 

Σε ευχαριστώ για τα καλά σου λόγια.

 

ενταξεί! θα τα αλλάξω σε όλη την έκταση του Tutorial

καθώς και θα αναζητησω και πιθανούς αλλους όρους και την ελληνική μετάφραση τους!

Τίποτε άλλο καλό ή κακό που παρατηρήσατε!? πείτε μου την γνώμη σας

Έριξα μια "διαγώνια" ματιά πριν από λίγο. Για να είμαι ειλικρινής, υπάρχουν αρκετά πράγματα που χρειάζονται διόρθωση κατά την άποψή μου.

 

Το βασικότερο είναι πως "ανακατεύεις" ορολογίες και έννοιες ως κοινές για διάφορα data-structures. Αυτό είναι εσφαλμένο, και είναι κρίμα για κάποιον αρχάριο να τα πρωτο-δει/εντυπώσει λάθος.

 

Για παράδειγμα, η push() είναι "πράξη" στοιβών, ενώ εσύ την χρησιμοποιείς ως ορολογία και για τις ουρές και για τις generic singly & doubly linked lists, κλπ. Κάτι παρόμοιο κάνεις και με την pop(). Οι (ας τις πούμε αντίστοιχες) πράξεις για ουρές είναι οι enqueue() και dequeue(), οι οποίες δεν αναφέρονται καθόλου.

 

Ένα άλλο σημείο που θεωρείται (και στην προκειμένη περίπτωση είναι) κακή πρακτική, αφορά τις καθολικές μεταβλητές. Οι συναρτήσεις διαχείρισης λιστών (είτε απλών, είτε διπλών, είτε κυκλικών, είτε οτιδήποτε) είθισται να παίρνουν την λίστα ως όρισμα, και μάλιστα κατά προτίμηση ως 1ο όρισμα ώστε να διευκολύνεται η σημειολογία, η ευκρίνεια, το scalability, το ενδεχόμενο information hiding, κλπ. Στα παραδείγματα σου όλες οι push() και pop() στηρίζονται σε καθολικό ορισμό των λιστών.

 

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

 

Ελπίζω να κατανοείς πως δεν προσπαθώ να σε αποθαρρύνω. Προσπαθώ να σε βοηθήσω να πετύχεις καλύτερο αποτέλεσμα.

 

Δημοσ.

Αν και δεν το διάβασα ακόμη το tutorials σου φαίνεται κάλο εκ πρώτης όψεως. Δηλαδή δεν πρόκειται για προχειροδουλεια.

Πάντως αυτό ο tutorial σου είναι πολύ κάλο: https://www.dropbox.com/s/b9n3frxttdniq9h/SpaceRock%20Escape%20Project%20P1.pdf?dl=0

Συνέχισε έτσι. 

 

Eπισης. το site σου θελε λίγη δουλίτσα ακόμη για να ει ναι πιο user-friendly..

Δημοσ.

migif ευχαριστω για τις ευστοχες παρατηρησεις
οπότε θα ήταν συνετό , να χωρισω αυτο το tutorial σε μικροτερα , (για μονη συνδεδεμενη λιστα , διπλα συνδεδεμένη λιστα κλτπ και έπειτα για ουρές και στοίβες ) έτσι ώστε να φαίνονται καθαρότερα οι διαφορές μεταξυ των τύπων λιστών.

 

vacilis ευχαριστω πολυ! στο συγκεκριμένο tutorial υπάρχουν 3 μέρη , τα οποία θα δημοσιευτούν σύντομά :)

  • Like 1
Δημοσ.

migif ευχαριστω για τις ευστοχες παρατηρησεις

οπότε θα ήταν συνετό , να χωρισω αυτο το tutorial σε μικροτερα , (για μονη συνδεδεμενη λιστα , διπλα συνδεδεμένη λιστα κλτπ και έπειτα για ουρές και στοίβες ) έτσι ώστε να φαίνονται καθαρότερα οι διαφορές μεταξυ των τύπων λιστών.

 

...

Κατά την άποψή μου ναι. Αλλά είναι απλά η άποψή μου, ίσως είναι καλή ιδέα να πάρεις κι άλλες γνώμες.

 

Σε ότι αφορά πάντως τις στοίβες, τις ουρές, κλπ, επί της ουσίας πρόκειται για abstract data types, με την έννοια πως η εσωτερική τους υλοποίηση δεν είναι απαραίτητο να γίνει με λίστα . Μπορεί ας πούμε να γίνει με array. Καλό είναι να είναι ξεκάθαρο αυτό, και σε σένα που γράφεις το tutorial και στους αναγνώστες σου.

 

Γενικώς το πεδίο "data structures and algorithms" είναι και ευρύ και απαιτητικό όσο προχωράει κανείς.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...