Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Hur man slår ihop två sorterade ADT Listor

    En abstrakt datatyp ( ADT ) lista , eller länkad lista som det oftare kallas , är en av de grundläggande datastrukturer i datavetenskap och en av de första alternativen till enkel array lärt av en datavetenskap student. Fast det offrar möjligheten att flytta till mitten av listan utan att söka igenom listan först , gör ADT lista det trivialt enkelt att expandera och krympa de lagrade uppgifterna . Denna kod är implementerat i Java , eftersom Javas inbyggda länkad lista datastruktur tillåter oss att komma direkt till den punkten , men samma logik skulle kunna genomföras med minsta ändring i någon annan C - liknande språk . Instruktioner
    1

    Skapa dina två länkade listor och initiera dem med vissa sorterade data genom att klistra in följande i en Java -fil :

    LinkedList list1 = ny LinkedList ( ) ;

    LinkedList list2 = ny LinkedList ( ) ;

    for (int x = 0 , x < 100 , x + + ) du har två länkade listor fyllda med slumptal som har sorterats
    2

    Skapa en ny länkad lista för att hålla den sammanslagna listan genom att klistra in följande : .

    LinkedList samman = ny LinkedList ( ) ;
    3

    Inrätta en enkel while-slinga . Denna slinga kommer fortsätta så länge båda listorna har minst ett element i dem , och det kommer att flytta den minsta av de bästa delarna till den sammanslagna listan : .

    //Även om båda listorna är inte tomma

    medan ( ! list1.isEmpty ( ) && ! ​​list2.isEmpty ( ) ) {
    p Om ( list1.peek ( ) < = list2.peek ( ) ) {

    samman . add ( list1.pop ( ) ) ;

    } else {

    merged.add ( list2.pop ( ) ) ;

    }

    }

    " Peek " kommando tittar på elementet på framsidan av listan , medan " Pop " båda ser på elementet och tar bort den . När jämförelsen görs , vill du bara att kika på toppen av listan för att se vilken som är mindre . När det blir dags att slå ihop listorna , du vill ta bort det översta värdet och lägg dem på de nya listorna .
    4

    avsluta jobbet . Så snart någon lista är tom , det finns ingen anledning att fortsätta att göra jämförelser . Därför är den gamla slingändarna och annan slinga skapats för att fylla resten av den sammanslagna listan med de återstående uppgifterna från den senaste listan :

    //Medan den första listan inte är tom

    medan {

    merged.add ( list1.pop ( ) ) ;

    } ( list1.isEmpty ( ) ! ) katalog

    //Även om den andra listan inte är tom .

    medan {

    merged.add ( list2.pop ( ) ) ;

    } ( list2.isEmpty ( ) ! )
    5

    Skriv ut resultatet så att du kan inspektera sammanslagna listan och se till att det fungerade korrekt :

    int x = 1 ;

    för ( Dubbel y : samman ) {

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

    x + + ;

    }

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur ansöker en Array i BorderLayout
    ·Java trimfunktion
    ·Hur till Bädda Java Into Flex
    ·Så här ställer du olika värden för varje rad i en …
    ·Hur får DSN Information Använda Java
    ·Hur man gör en objektorienterad Java Game
    ·Business Rules i Java
    ·Så här importerar ett paket Into en Eclipse Project
    ·Hur man iterera över Keys i HashMap i Java
    ·Hur man gör Valideringar i Struts
    Utvalda artiklarna
    ·Vad är ett Null Pointer Exception
    ·Hur Loop Through Alla fastigheter på ett Python Object…
    ·Hur man utför en Bit Shift i Basic
    ·Splitfunktionen i Perl
    ·Hur man skapar ett Error Handler för ett VB program
    ·Hur man använder MATLAB Utan Desktop
    ·Fördelar och nackdelar Machine nivå språk
    ·Om Java -certifiering
    ·Lägga till en skrivare med VBScript
    ·Hur man gör Spaces in mellan flera strängar i Python
    Copyright © Dator Kunskap http://www.dator.xyz