Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    Hvordan slå sammen to Sortert ADT Lister
    En Abstract datatype ( ADT ) liste , eller lenket liste som det er mer ofte kalles, er en av de grunnleggende datastrukturer i informatikk og en av de første alternativene til den enkle matrise lært av en informatikk student. Selv om det ofrer muligheten til å flytte til midten av listen uten å søke gjennom listen først , gjør ADT liste det trivially lett å utvide og krympe de lagrede data . Denne koden er implementert i Java , siden Java sin innebygde Linked List datastruktur tillater oss å komme direkte til poenget, men den samme logikken kunne gjennomføres med minimum endring på andre C -lignende språk . Instruksjoner
    en

    Lag dine to koblede lister og starte dem med noen sorterte data ved å lime inn følgende i en Java -fil : en

    LinkedList list1 = new LinkedList ( ) ;

    LinkedList list2 = new LinkedList ();

    for ( int x = 0 ; x < 100; x + + ) du har to koblede lister fylt med tilfeldige tall som har blitt sortert
    2

    Opprett en ny Lenket liste for å holde det fusjonerte listen ved å lime inn følgende : .

    LinkedList fusjonert = new LinkedList ();
    3

    Sett opp en enkel mens loop . Denne sløyfen vil fortsette så lenge begge listene har minst ett element i dem , og det vil flytte den minste av de beste elementene til den sammenslåtte liste : .

    //Mens begge listene er ikke tomme

    mens ( ! list1.isEmpty ( ) && ! ​​list2.isEmpty ( ) ) {

    if ( list1.peek ( ) < = list2.peek ( ) ) {

    fusjonert . add ( list1.pop ( ));

    } else {

    merged.add ( list2.pop ( ));

    }

    }

    " Peek "-kommandoen ser på elementet i fronten av listen , mens " Pop" både ser på elementet og fjerner den . Når sammenligningen er gjort, du bare ønsker å titte på toppen av listen for å se hvilke som er mindre. Når det gjelder tid til å flette listene , ønsker du å ta bort den øverste verdien og sette den på de nye listene .
    4

    Fullfør jobben . Så snart enten er tom , er det ikke nødvendig å fortsette med å gjøre sammenligninger. Derfor er de gamle sløyfe endene , og en annen sløyfe opprettet for å fylle resten av det fusjonerte liste med resten av dataene i den siste listen:

    //Mens den første listen er ikke tom

    mens {

    merged.add ( list1.pop ( ));

    } ( list1.isEmpty ( ) ! )

    //mens den andre listen ikke er tom.

    mens {

    merged.add ( list2.pop ( ));

    } ( list2.isEmpty ( ) ! )
    5

    skrive ut resultatene slik at du kan inspisere det fusjonerte listen og sikre at det fungerte riktig : en

    int x = 1;

    for ( Double y: fusjonert ) {

    System. out.println ( x + " " + y ) ;

    x + +;

    }

    früher :

     Weiter:
      Relatert Artike
    ·Java og Stavekontroll 
    ·Java String Manipulation for å konvertere en streng ti…
    ·Slik kontrollerer du Heap Størrelse på en JVM 
    ·File Unntak for Java Applets : Arial.ttf vil ikke start…
    ·Hvordan endre bakgrunnen JFrame i Swing 
    ·Hvordan bli kvitt den røde X i Java 
    ·Hvordan skrive JDBC Med Eclipse 
    ·Hvordan få en System Date i Java 
    ·Slik konverterer Java String til Dato 
    ·Nivåer av Java sertifisering 
      Anbefalte artikler
    ·Hva Er Request prosessor i Struts 
    ·Hvordan bli kvitt den røde X i Java 
    ·PHP og MySQL Logg Sikkerhet 
    ·Rekursjonsdata Problemer i Java 
    ·Slik bruker du en Skew Heap i Java 
    ·Funksjon av Call Funksjon 
    ·Ingen hovedklasser Fant i NetBeans 
    ·Hvordan å oppdatere siden Etter tre SEC i PHP 
    ·Hvordan komme i gang med NetBeans UML 
    ·Hvor å Sjekk for ODBC Driver i VBA 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/