| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Java Programming >> Content
    Come utilizzare un heap Skew in Java
    Un mucchio skew è una struttura dati astratta . Anche se Java non prevede una classe di albero binario , il mucchio skew può essere pensato come un albero binario di ricerca di auto-organizzazione . La classe Heap Skew Java implementa l'interfaccia Comparable così elenchi di oggetti SkewHeap possono essere ordinati facilmente . Istruzioni
    1

    Scrivi lo scheletro della classe SkewHeap . Le variabili di interesse sono il valore ( il valore del nodo ) e di sinistra e di destra (i figli sinistro e destro ) . Le variabili statiche tmp e trattino sono utilizzati per lo spazio temporaneo nella fusione e metodi di stampa. Il costruttore inizializza valore e lascia a sinistra e destra come null " " SkewHeap public class implementa Comparable { int valore ; . SkewHeap sinistra, a destra ; tmp LinkedList statico ; static int trattino = 0; { valore pubblico SkewHeap ( int val) = val ; } } " "
    2

    Utilizzare il metodo compareTo come un modo per soddisfare l' interfaccia Comparable e permettono di elenchi di oggetti SkewHeap da ordinare . Il metodo compareTo deve restituire un numero negativo , il numero zero o positivo , a seconda di come i due oggetti devono essere ordinati . Raggiungere questo eseguendo una sottrazione di valori dei due nodi 'tale che i nodi con valori minori sono ordinati prima che i nodi di maggior valore " " public int compareTo ( SkewHeap h ) { valore di ritorno - h.value ; } " . "

    3

    Compose il metodo di taglio , un importante metodo utilizzato dal merge. Quando si esegue una stampa unione , entrambe cumuli vengono tagliati a pezzi lungo il lato destro . . Il metodo che esegue chop chop e aggiunge le restanti subheaps alla lista tmp " " vuoto chop pubblico ( ) { SkewHeap r = destra, destra = null; if ( r = null ! ) R.chop ( ) ; tmp.addLast ( questo );} " "
    4

    creare il metodo di unione. I metodi di inserimento e removeHead entrambi utilizzano fondono per svolgere il loro compito . Il metodo merge tritare entrambi cumuli da unire , che memorizza tutti i subheaps in tmp .
    5

    Realizzare ordinamento la lista collegata tmp e combinando i subheaps rimuovendo gli ultimi due cumuli dall'elenco. Aggiungere uno come il figlio destro dell'altro, scambiare i bambini destro e sinistro e aggiungere la schiena mucchio alla fine dell'elenco . In questo modo , subheaps tritate vengono riassemblati in un unico mucchio equilibrato . Nodi di sinistra sono sempre garantiti per essere meno i nodi giusti , e nodi figlio hanno un valore maggiore di nodi padre " " pubblica SkewHeap merge ( SkewHeap h ) { //Tritare i nodi lungo il percorso giusto tmp = new LinkedList ( ) . ; chop (); h.chop ( ) ; //Ordina i nodi Collections.sort ( tmp ) ; //Unisci i subheaps mentre ( tmp.size ( ) > 1) { SkewHeap a = tmp.removeLast (); SkewHeap b = tmp.removeLast (); b.right = b.left ; b.left = a; tmp.addLast ( b); } return tmp.getFirst (); } " "
    6

    Scrivi il metodo removeHead . Questo rimuoverà il nodo principale e unire i cumuli figlio sinistro e destro " " pubblica SkewHeap removeHead ( ) {if ( left == null && destra == null) return null ; . Else if (a sinistra == null ) return giusto , altrimenti se (a destra == null ) return sinistra ; altro left.merge ritorno (a destra );} " "
    7

    formulare il metodo di stampa . Questo metodo è importante per il debug , come debugger spesso non hanno le strutture per visualizzare le strutture dati annidate come questo mucchio skew . E ' ricorsiva e trattino correttamente " " void print pubblico ( ) {for ( int i = 0; . Ho System.out.println ( value); trattino + +; if ( sinistra = null) {for ( int i = 0; ! Ho Sistema . out.println ( " left.print (); } if ( destra = null) {for ( int i = 0; i System.out.println ( " - > "); right.print (); } trattino - - ; } " "

    Previous :

    next :
      Articoli Correlati
    ·Come aggiungere JDK al classpath 
    ·Come fare un server di chat in Java 
    ·Facile Spiegazione delle applet Java 
    ·Come formattare numeri in decimali in Java 
    ·Come tagliare le funzioni in Java 
    ·Come fare una calcolatrice con Java 
    ·Come importare un pacchetto in un progetto Eclipse 
    ·Come risolvere Upside Down Immagini Java 
    ·Procedura: Annotazioni dal codice Java 
    ·Come per intercettare un'eccezione in un blocco statico…
      Articoli in evidenza
    ·Come utilizzare un timer in una DLL VB6 
    ·VB.NET Programmazione Client Server 
    ·Come convertire un oggetto String in Visual Basic 
    ·Come eseguire VMware in un terminale Linux 
    ·Come visualizzare una stringa in Java 
    ·Come visualizzare il contenuto di una lista di array in…
    ·Come compilare il TextPad 5 
    ·Come utilizzare OpenFileDialog in Visual Basic Express 
    ·Classi di alta scuola consigliati per Computer grafica 
    ·Come fare divisioni in virgola mobile 
    Copyright © Conoscenza Informatica http://it.wingwit.com