chris2060 Δημοσ. 10 Μαρτίου 2008 Δημοσ. 10 Μαρτίου 2008 γεια σας παιδια, εχω μια ασκηση στις δομες δεδομενων και δεν μπορω να καταλαβω τι θελει να κανω.... αν καποιος καταλαβει ας μου πει please. λοιπον, εχουμε μια απλη συνδεδεμενη λιστα και εκχωρουμε μεσα ακεραιους. και ζηταει να γινει διαγραφή κάθε 2ου στοιχείου της Α.Σ.Λ.(απλης συνδεδεμενης λιστας) βασικα το γραφω σε πασκαλ. περισσοτερο θελω να μου πειτε τι εννοει καθε δευτερου στοιχειου? σβηνω αρχικα τον 2ο κομβο σωστα? και μετα? ευχαριστω
g1org0s Δημοσ. 10 Μαρτίου 2008 Δημοσ. 10 Μαρτίου 2008 Από αυτό που λες, εγώ καταλαβαίνω ότι θα πρέπει να φτιάξεις μια απλή συνδεδεμένη λίστα και να καταχωρούνται ακέραιοι αριθμοί. Όταν λέει ότι θα πρέπει να διαγράφεις κάθε δεύτερο ακέραιο εννοεί κατ΄ ε με ότι θα πρέπει να διαγράφεις τον δεύτερο ακέραιο, τον τέταρτο, τον έκτο και ούτω καθεξής, αλλά μπορείς να αρχίσεις να διαγράφεις και από τον πρώτο ακέραιο οπότε αν διαγράψεις τον πρώτο ο δεύτερος είναι ο τρίτος, μετά ο πέμπτος και πάει λέγοντας.
bokarinho Δημοσ. 10 Μαρτίου 2008 Δημοσ. 10 Μαρτίου 2008 Εφόσον το γράφεις σε Pascal δεν μπορώ να σε βοηθήσω με κώδικα, αλλά για τον τρόπο μπορείς να έχεις ένα μετρητή για να μετράς το μέγεθος της λίστας στην δομή της λίστας και στην συνάρτηση που διαγράφει τους κόμβους που θέλεις να ορίσεις ένα loop και να κάθε φορά να ελέγχεις για ζυγό αριθμό (Index % 2 == 0) ξεκινώντας όχι από το μηδέν αλλά από το 1 βέβαια και ταυτόχρονα μέσα στο loop να έχεις ένα δείκτη στην κεφαλή της λίστας ο οποίος κάθε φορά θα σε πηγαίνει στο επόμενο στοιχείο. Να ελέγχεις μόνο αν υπάρχει ο κόμβος που άλλαζεις κάθε φορά, οπότε αν φτάσεις στην ουρά και είναι ζυγοί οι κόμβοι σβήσε την ουρά και κάνε την ουρά σου να δείχνει στον προηγούμενο. Θα σου χρειαστεί μια συνάρτηση που να κάνει Remove τον κόμβο της λίστας με βάση ένα κόμβο. Πιστεύω...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.