Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte si dve prepojené zoznamy a inicializovať je s niektorými triedených dát vložením nasledujúcej do súboru Java :
LinkedList LinkedList for ( int x = 0 ; x < 100 , x + + ) Máte dve prepojené zoznamy plnej náhodných čísel , ktoré boli zoradené Vytvoriť nový spájať zoznam držať zlúčený zoznam vložením nasledovné : . LinkedList Nastaviť jednoduché , zatiaľ čo slučka . Táto slučka bude pokračovať tak dlho , kým obaja zoznamy mať aspoň jeden prvok v nich , a to bude pohybovať najmenší z hlavných prvkov do zlúčeného zoznamu : . //Aj keď sú oba zoznamy nie sú prázdne while ( list1.isEmpty ! ( ) && ! list2.isEmpty ( ) ) { if ( list1.peek ( ) < = list2.peek ( ) ) { zlúčené . pridať ( list1.pop ( ) ) ; } else { merged.add ( list2.pop ( ) ) ; } } príkaz " Peek " sa zameriava na prvok na začiatok zoznamu , zatiaľ čo " Pop " ako sa pozerá na prvku a odstráni ju . Keď porovnanie sa vykoná len chcete nahliadnuť v hornej časti zoznamu pre zobrazenie, ktoré je menšie . Keď príde čas zlúčiť zoznamy , ktoré chcete vziať so najvyššiu hodnotu , a dať to na nových zoznamoch . dokončiť prácu . Akonáhle jeden zoznam je prázdny , nie je potrebné pokračovať v porovnávaní . Preto starý slučka končí , a ďalšie slučka je vytvorený k vyplneniu zvyšok zlúčeného zoznamu sa zostávajúcimi dátami z posledného zoznamu : //Kým prvý zoznam nie je prázdny while ( list1.isEmpty ( ! ) ) { merged.add ( list1.pop ( ) ) ; } //Zatiaľ čo druhý zoznam nie je prázdny. zatiaľ čo { merged.add ( list2.pop ( ) ) ; } ( list2.isEmpty ( ! ) ) Vytlačte výsledkov , takže si môžete prezrieť zlúčený zoznam a uistite sa , že pracuje správne : int x = 1 ; pre ( Double y : zlúčené ) { klipart systém . out.println ( x + " , " + y ) ; x + + ; }
2
3
4
5