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

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

Δημοσ.

Κωδικα με τριπλοτετραπλους δεν εχω ψαξει ειναι πονοκεφαλος και δεν ξερω ποσο συνηθισμενοι ειναι. Αρκετα χρησιμοι ειναι οι διπλοι παντως οταν παιζεις με λιστες για να μπορει μια συναρτηση να μετακινησει τον δεικτη που εχει περαστει με αναφορα σαν διπλος.

  • Like 1
Δημοσ.

Στην java σε μια λίστα πως πάμε στον επόμενο κόμβο; πχ στην C είπατε με διπλους δέικτες δεικτες.

 

Μόλις καταλήξω σε ποια από τις γλώσσες θα πάω θα το γράψω εδώ να πω το σκεπτικό μου.

Δημοσ.

Στην java σε μια λίστα πως πάμε στον επόμενο κόμβο; πχ στην C είπατε με διπλους δέικτες δεικτες.

 

Μόλις καταλήξω σε ποια από τις γλώσσες θα πάω θα το γράψω εδώ να πω το σκεπτικό μου.

Στη Java, στην κλάση των κόμβων της λίστας θα έχεις references σε κλάσεις του ίδιου τύπου.

 

 

Σωστός; Σωστός; :D

 

 

Στη C δε χρειάζεσαι διπλούς δείκτες γι'αυτό το πράγμα. Αναλόγως και την υλοποίηση βέβαια.

Δημοσ.

Εγω απορώ ποιο είναι το πρόβλημα όσον αφορά τις δομές της java. Μια μελέτη στην standard υλοποίηση, copy paste και τροποποίηση δίνει μια αξιοπρεπέστατη λύση που θα οδηγήσει και στην κατανόηση

Δημοσ.

Κωδικα με τριπλοτετραπλους δεν εχω ψαξει ειναι πονοκεφαλος και δεν ξερω ποσο συνηθισμενοι ειναι. Αρκετα χρησιμοι ειναι οι διπλοι παντως οταν παιζεις με λιστες για να μπορει μια συναρτηση να μετακινησει τον δεικτη που εχει περαστει με αναφορα σαν διπλος.

 

 

Αχμ... ναι.

 

Τριπλός δείκτης είναι πολύ συνηθισμένο πράγμα, ιδιαίτερα όταν έχεις 2D arrays στην C. Οπότε, το να αναρωτιέται κανείς πόσο συνηθισμένος είναι ο 3πλος δείκτης... ε.. κάτι δείχνει. 

 

 

 

Εγω απορώ ποιο είναι το πρόβλημα όσον αφορά τις δομές της java. Μια μελέτη στην standard υλοποίηση, copy paste και τροποποίηση δίνει μια αξιοπρεπέστατη λύση που θα οδηγήσει και στην κατανόηση

 

 

 

Μωρέ... κανένα δεν είναι το πρόβλημα. 

 

Το θέμα είναι ότι με την C θα έχει την ευκαιρία να δει και λίγο "under the hood". Και δεν είναι ότι πρέπει να παραδώσει το project στον πελάτη. Φοιτητής είναι και άρα δίνει χρόνο για να μάθει (=φοιτητής). Οπότε, γιατί να μην κάτσει να το δει με την C; Οι πιθανότητες να το κάνει ξανά με C στην ζωή του είναι πολύ λιγότερες από το να το κάνει με python, Java, C++, C#, php. 

 

Αλλά, με την C θα χειριστεί μόνος του την μνήμη. Μόνος του θα κάνει τις συνδέσεις στην λίστα. Θα καταλάβει την εγγενή διαφορά της στοίβας από την ουρά ή γιατί (τελικά) λέει η διπλά συνδεδεμένη λίστα. Αλλά θα το καταλάβει όχι βλέποντας ένα documentation να του λέει "με απλά συνδεδεμένη λίστα δεν μπορείς να κάνεις το τάδε" ή σχόλια στο S.O. να λένε "με απλά συνδεδεμένη λίστα ο τάδε χρόνος είναι μεγαλύτερος". Θα το καταλάβει επειδή το έκανε μόνος του και ξέρει... από μέσα. 

Δημοσ.

 

Αλλά, με την C θα χειριστεί μόνος του την μνήμη. Μόνος του θα κάνει τις συνδέσεις στην λίστα. Θα καταλάβει την εγγενή διαφορά της στοίβας από την ουρά ή γιατί (τελικά) λέει η διπλά συνδεδεμένη λίστα. Αλλά θα το καταλάβει όχι βλέποντας ένα documentation να του λέει "με απλά συνδεδεμένη λίστα δεν μπορείς να κάνεις το τάδε" ή σχόλια στο S.O. να λένε "με απλά συνδεδεμένη λίστα ο τάδε χρόνος είναι μεγαλύτερος". Θα το καταλάβει επειδή το έκανε μόνος του και ξέρει... από μέσα. 

 

Και με την Java το ίδιο ακριβώς θα κάνει, μόνος του θα κάνει τις συνδέσεις στη λίστα. Το ίδιο ισχύει για τις στοίβες και τις ουρές.

 

Η μόνη διαφορά είναι ότι θα κάνει malloc αντί για new και θα χρειαστεί να κάνει free στο removeNode...άρα η μόνη διαφορά είναι η διαχείρηση μνήμης που δεν είναι ο αντικειμενικός σκοπός της άσκησης.

Δημοσ.

Λοιπον αποφασισα τελικα να κανω το project σε Java. Ο κυριοτερος λογος ειναι οτι οπως ειπαν αρκετοι, θεωρω οτι θα γραψω καλυτερο κωδικα εκει, και λογω του οτι ειναι σχετικα μικρο το χρονικο περιθωριο που εχω (μεχρι τις 15) μαζι με αλλες ασκησεις/project που τρεχουν ταυτοχρονα, δεν ξερω αν θα προλαβαινα με C και να καλυψω τα κενα και τις δυσκολιες μου με pointers και διαχειριση μνημης, και να παραδωσω μια αξιοπρεπη λυση.

 

Οποτε, Java και μολις εχω ελευθερη περιοδο θα κοιταξω να καλυψω μονος μου τα κενα της C.

 

Αν εχει καποιος link σχετικα με δομες δεδομενων και υλοποιηση σε Java θα το εκτιμουσα δεοντος ωστε να εχω εναν αρχικο μπουσουλα.

 

Ευχαριστω ολους για τις απαντησεις! :-)

Δημοσ.

Οποτε, Java και μολις εχω ελευθερη περιοδο θα κοιταξω να καλυψω μονος μου τα κενα της C.

 

 

Πότε δεν θα το κάνεις... έτσι είπανε πολλοί.. :P

 

 

Ναι, με Java θα γράψεις πιο ωραίο κώδικα και θα επικεντρωθείς στην καθαυτού δομή δεδομένων. Αλλά είναι λίγες οι ευκαιρίες που έχεις να κάτσεις να ασχοληθείς με C χωρίς να σε πιέζει ο πελάτης/project manager/cto και να μάθεις και κάτι. 

 

 

Με ένα απλό google search: "implement queue on java" θα πάρεις πολλά αποτελέσματα. 

  • Like 1
Δημοσ.

Για linked list μπορείς να δεις εδώ

 

Επειδή υλοποιεί πολλά interfaces δεν σου χρειάζονται τα περισσότερα. Απλά θα φτιάξεις μια short version βάσει όσων θέλεις. Μπορείς ακόμα και να μην χρησιμοποιήσεις Generics

 

Problem solved in no time

  • Like 1
Δημοσ.

Πότε δεν θα το κάνεις... έτσι είπανε πολλοί.. :P

 

Θελω δε θελω θα ασχοληθω σε επομενα μαθηματα με C οπως μου ειπε ενα παλικαρι συμφοιτητης μεγαλυτερου ετους, οποτε να σαι σιγουρος οτι θα καλυψω τις δυσκολιες μου απο πριν, γιατι δεν ψηνομαι οταν τρεχει το project να τις καλυψω τωρα. Ειμαι αρκετα πιεστικος προς τον εαυτο μου, οποτε καταλαβαινεις :P

Δημοσ.

Το καλό με τη java είναι πως είναι καθαρή oop που σημαίνει πως θες δε θες θα το γράψεις υπό μορφή module. η C σου δίνει τεράστια ελευθερία που δεν είναι πάντα καλό.

 

C πρέπει να ξέρει ΚΑΘΕ πρωτοετής πανεπιστημίου πληροφορικής από τη στιγμή που έχεις πάρει κάποιες βάσεις μπορείς να προχωρήσεις χωρίς να πονοκεφαλιάζεις χωρίς λόγο. Άλλο όμως να μιλάμε για πρώτα έτη κι άλλο γενικά.

 

// Ναι είναι ανόητο να σου απαγορεύει κάποιος να πάρεις κάτι που σίγουρα θα υπάρχει έτοιμο αλλά οκ το θέμα είναι να μάθεις μη πας κατευθείαν να τα παρεις όλα έτοιμα δεν υπάρχει λόγος. Στον προγραμματισμό δεν αρκεί να καταλάβεις το concept αν δεν γράψεις δεν...

  • Like 2
Δημοσ.

Το καλό με τη java είναι πως είναι καθαρή oop

 

 

Τσου. Δεν είναι. Έχει int και έχει και Integer (π.χ.). Αυτό, και αυτομάτως, την κάνει ΜΗ καθαρή. Βρομιάρα Java...

Δημοσ.

 

 

// Ναι είναι ανόητο να σου απαγορεύει κάποιος να πάρεις κάτι που σίγουρα θα υπάρχει έτοιμο αλλά οκ το θέμα είναι να μάθεις μη πας κατευθείαν να τα παρεις όλα έτοιμα δεν υπάρχει λόγος. Στον προγραμματισμό δεν αρκεί να καταλάβεις το concept αν δεν γράψεις δεν...

 

Μπορει να θέλουν μετα να το παρουσιασουν ως δική τους δουλειά φιλε :P

 

Ναι γιατι ενδιαφερει πολυ τους καθηγητες του πανεπιστημιου αμα μάθεις εκτος απο ελάχιστους οι άλλοι χέστηκαν με το συμπάθειο. 

Δημοσ.

Τσου. Δεν είναι. Έχει int και έχει και Integer (π.χ.). Αυτό, και αυτομάτως, την κάνει ΜΗ καθαρή. Βρομιάρα Java...

 

εντάξει τι να πει και η C++ τότες :P

 

οκ καθαρά καθαρή δεν είναι, σωστά. Αλλά είναι αρκετά πιο κοντά στο στυλ που θα χρειαστεί να γράφει σε 5-6 χρόνια.

 

 

Μπορει να θέλουν μετα να το παρουσιασουν ως δική τους δουλειά φιλε :P

 

Ναι γιατι ενδιαφερει πολυ τους καθηγητες του πανεπιστημιου αμα μάθεις εκτος απο ελάχιστους οι άλλοι χέστηκαν με το συμπάθειο. 

 

μα δεν το κάνεις για τον καθηγητή για σένα το κάνεις. Πίστεψέ με κανείς δε θέλει να πάει ξέρω γω τριτο έτος και να μη ξέρει να στήσει μια υλοποίηση διπλά συνδεδεμένης λίστας ας πούμε.

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

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

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

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

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

Σύνδεση

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

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