Δημιουργήστε μια λειτουργία για να ελέγξετε για τη λίστα της κυκλικότητας . Αυτή η λειτουργία θα επιστρέψει " True" , αν η λίστα είναι κυκλική , και "False " αλλιώς . Ορίστε αυτή τη λειτουργία μέσα στην τάξη κατάλογο :
κατηγορίας LL {
public boolean isCircular ( ) { } } 2
Δημιουργήστε μια θηλιά στη λειτουργία για να διασχίσει το λίστα . Ο βρόχος θα ξεκινήσει στην κορυφή της λειτουργίας , και να περάσουν από κάθε κόμβο σε ολόκληρη τη λίστα , που αντιπροσωπεύεται από το " Node" τύπο δεδομένων , μέχρι να φτάσει " null " ( στο τέλος της λίστας ) :
public boolean isCircular ( ) {
κόμβου ρεύμα = head.next ? //ξεκινά από τον κόμβο μετά από τον κόμβο κεφαλής
ενώ ( ρεύμα = null ! ) { } }
με 3
Χρησιμοποιήστε το βρόχο για να ελέγξετε κάθε κόμβο στη λίστα . Εάν ο τρέχων κόμβος είναι ο κόμβος της κεφαλής , αυτό σημαίνει ότι ο βρόχος έχει διαγράψει ολόκληρη τη λίστα και εκκαθάριση πίσω στην αρχή , πράγμα που σημαίνει ότι η λίστα είναι κυκλική . Αν ο βρόχος χτυπά μια " μηδενική " τιμή η λίστα δεν είναι κυκλική :
isCircular public boolean ( ) {
κόμβου ρεύμα = head.next ? //Αρχίζει στον κόμβο μετά από το κεφάλι κόμβο
ενώ ( ρεύμα = null ! ) {if ( ρεύμα == κεφάλι ) {επιστροφή True ? } επιστροφή ψευδείς? } }
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα