Δημιουργήστε δύο συνδεδεμένες λίστες σας και να προετοιμάσει τους με κάποια ταξινομημένα δεδομένα με την επικόλληση το παρακάτω σε ένα αρχείο Java :
LinkedList LinkedList για ( int x = 0 ? x <100 ? x + + ) έχετε δύο συνδεδεμένες λίστες γεμίζουν με τυχαίους αριθμούς που έχουν ταξινομηθεί 2 Δημιουργήστε ένα νέο Linked List για να κρατήσει τη λίστα συγχωνευθείσα με την επικόλληση το εξής : . LinkedList Δημιουργήστε ένα απλό βρόχο while . Αυτός ο βρόχος θα προχωρήσει όσο οι δύο κατάλογοι έχουν τουλάχιστον ένα στοιχείο σε αυτά , και θα κινηθεί το μικρότερο από τα κορυφαία στοιχεία στον κατάλογο συγχωνευθείσα : . //Ενώ και οι δύο κατάλογοι δεν είναι άδειο ενώ ( ! list1.isEmpty ( ) && ! list2.isEmpty ( ) ) { αν ( list1.peek ( ) <= list2.peek ( ) ) { συγχωνεύθηκαν . προσθέστε ( list1.pop ( ) ) ? } else { merged.add ( list2.pop ( ) ) ? } } Η " Peek " εντολή εξετάζει το στοιχείο στο μπροστινό μέρος της λίστας , ενώ το " Pop " και κοιτάζει το στοιχείο και το αφαιρεί . Όταν η σύγκριση γίνεται , το μόνο που θέλετε να κρυφοκοιτάζει στην κορυφή της λίστας για να δείτε ποια είναι η μικρότερη . Όταν έρχεται η ώρα να συγχωνευθούν οι κατάλογοι , θέλετε να πάρει την κορυφαία τιμή και το βάζουμε σε νέους καταλόγους . Τελειώστε τη δουλειά . Συντομότερο είτε λίστα είναι κενή , δεν υπάρχει ανάγκη να συνεχιστεί η πραγματοποίηση συγκρίσεων. Ως εκ τούτου , το παλιό βρόχος τελειώνει , και έναν άλλο βρόχο έχει δημιουργηθεί για να καλύψει το υπόλοιπο της νέας λίστας με τα υπόλοιπα στοιχεία του τελευταίου καταλόγου : //Ενώ η πρώτη λίστα δεν είναι κενή ενώ ( list1.isEmpty ( !) ) { merged.add ( list1.pop ( ) ) ? } //ενώ ο δεύτερος κατάλογος δεν είναι άδειος . ενώ { merged.add ( list2.pop ( ) ) ? } ( list2.isEmpty ( !) ) Εκτυπώστε τα αποτελέσματα , έτσι ώστε να μπορέσει να επιθεωρήσει την λίστα συγχωνευθείσας και να εξασφαλίσει ότι λειτούργησε σωστά : int x = 1 ? για ( Double y : συγχωνεύονται ) { συστήματος . out.println ( x + " " + y ) ? x + + ? }
εικόνων 3
Η 4
5
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα