Δημοσιεύτηκε: 30 Ιουν 2011, 18:54
Star_Light έγραψε:Μigf1 μας εστρωσες στο διαβασμα!!! Αποψε θα διαβασω και τα καινουργια σου!
Χαλαρά, δεν υπάρχει λόγος βιασύνης έτσι κι αλλιώς. Δεν θέλουν και βιασύνη αυτά, γιατί δεν είναι κι ότι πιο εύκολο. Όπου κολλάτε πάντως μη διστάζετε να γράφετε απορίες, για να τις λύνουμε (όπου μπορώ εννοείται, γιατί κι εγώ δεν τα θυμάμαι κι όλα).
Προσπαθώ πάντως οι συναρτήσεις κι ο κώδικας που δίνω να είναι άκρως λειτουργικά, ώστε να μπορείτε να τα χρησιμοποιήσετε είτε ατόφια είτε με πολύ λίγες τροποποιήσεις σε οποιοδήποτε πρόγραμμα.
Στο επόμενο ποστ θα αναλύσω και 2 διαφορετικές υλοποιήσεις που προσθέτουν νέους κόμβους στο τέλος της λίστας, μια αργή και μια γρήγορη. Πιθανότατα θα κάνω κι άλλο ένα ποστ με κώδικα για απευθείας ταξινομημένη εισαγωγή του κάθε νέου κόμβου στη σωστή του θέση και μετά θα σταματήσω.
Ιδανικά θα μπορέσετε μόνοι σας κατόπιν ή έστω με λίγη βοήθεια να φτιάξετε κι άλλες συναρτήσεις, όπως π.χ. διαγραφή κόμβου, αναζήτηση κόμβου, αντιστροφή λίστας (reverse) κλπ.
Κι αν το πάρετε και πολύ ζεστά το πράγμα, θα είστε πολύ πιο έτοιμοι να περάσετε και σε πιο σύνθετα πράγματα, όπως π.χ. διπλά συνδεδεμένες λίστες (κυκλικές και μη), δέντρα, hash tables, κλπ.
Πράγματα δηλαδή που δεν είναι τετριμμένα και βοηθάνε πολύ και στην κατανόηση προχωρημένων τεχνικών ανάλυσης αλγορίθμων.
Π.χ. έναν πίνακα με όλα τα γράμματα της αλφαβήτου, όπου το κάθε στοιχείο του πίνακα θα είναι μια απλά συνδεδεμένη λίστα από λέξεις που ξεκινάνε από αυτό το γράμμα και θα είναι ταξινομημένες.