| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Java programmering >> Content
    Sådan flette to Sorteret ADT Lister
    En abstrakt datatype ( ADT ) liste eller sammenkædet liste , da det er mere almindeligt kaldes, er en af ​​de grundlæggende datastrukturer i datalogi og en af ​​de første alternativer til det simple vifte læres af en datalogistuderende . Selv om det ofrer evnen til at flytte til midten af listen uden at søge gennem listen først, ADT liste gør det trivielt nemt at udvide og krympe de lagrede data. Denne kode er implementeret i Java , da Java er indbygget i Linked List datastruktur giver os mulighed for at komme direkte til det punkt , men den samme logik kunne gennemføres med et minimum af ændringer i nogen anden C -lignende sprog. Instruktioner
    1

    Opret dine to hægtede lister og initialisere dem med nogle sorterede data ved at indsætte følgende i en Java -fil : Hej

    LinketListe list1 = new LinkedList ( ),

    LinketListe list2 = new LinkedList ();

    for (int x = 0; x < 100; x + +) du har to hægtede lister fyldt med tilfældige tal , der er blevet sorteret
    2

    Opret en ny Linked List at holde fusionerede liste ved at indsætte følgende: .

    LinketListe fusioneret = new LinkedList ();
    3

    Indstil en simpel while-løkke . Denne løkke vil forløbe , så længe begge lister har mindst ét element i dem, og det vil flytte den mindste af de øverste elementer til den fusionerede liste: .

    //Mens begge lister er ikke tomme

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

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

    fusioneret . add ( list1.pop ());

    } else {

    merged.add ( list2.pop ());

    }

    } nær

    " Peek " kommando ser på elementet på forsiden af listen , mens " Pop" både ser på elementet og fjerner det . Når sammenligningen er foretaget, du kun ønsker at kigge øverst på listen for at se, der er mindre. Når det drejer sig tid til at slå listerne , du ønsker at tage væk øverste værdi og sætte det på de nye lister .
    4

    afslutte jobbet. Så snart enten er tom , er der ingen grund til at fortsætte med at foretage sammenligninger. Derfor er de gamle loop slutter , og en anden loop skabt for at udfylde resten af ​​det fusionerede liste med de resterende data fra den seneste liste : Hej

    //Mens den første liste er ikke tom

    mens {

    merged.add ( list1.pop ());

    } ( list1.isEmpty () !)

    //mens den anden liste er ikke tom.

    mens {

    merged.add ( list2.pop ());

    } ( list2.isEmpty () !)
    5

    udskrive resultater, så du kan inspicere det fusionerede listen og sikre, at det fungerede korrekt : Hej

    int x = 1;

    for (Dobbeltværelse y : fusioneret ) {

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

    x + +;

    }

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Find en Understreng i Java 
    ·Tre primære fordele ved ENUM 
    ·Sådan får Java Arbejde Lige på XP 
    ·Forklaring af Int N1 og N2 i Java-kode 
    ·Sådan får du vist linjenumre i JCreator 
    ·Sådan Ignorer tegnsætning i Java 
    ·Installationen af ​​Java Web Start ActiveX-objektet 
    ·Sådan Tilkald CFC Fra Javascript 
    ·Android SDK View Editor 
    ·Sådan installeres en JAR fil i Eclipse 
      Anbefalede Artikler
    ·Sådan Cache en webside med PHP 
    ·Hvordan til at returnere en ERRORLEVEL i VBS 
    ·Sådan Erstat Funktioner i Dev C + + 
    ·Sådan oprettes CLOB i Java 
    ·Hvordan laver tekst Blink Med JavaScript 
    ·Hvordan kan man øge Video upload filstørrelse Med PHP…
    ·Interaktivt selvstudium på Top PHP 
    ·Hvordan laver kommentarer i VBS -kode 
    ·Når du har valgt en dato i DateTime Picker , hvordan k…
    ·Hvordan at genfremstille et problem på Java 
    Copyright © Computer Viden http://www.computerdk.com