| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    Comment utiliser un tas Skew en Java
    Un tas d'inclinaison est une structure de données abstrait . Bien que Java ne prévoit pas une classe d'arbre binaire , le tas d'inclinaison peut être considéré comme un arbre binaire de recherche d'auto-organisation . La classe Heap Skew Java implémente l' interface Comparable si des listes d'objets SkewHeap peuvent être triés facilement . Instructions
    1

    Ecrire le squelette de la classe SkewHeap . Les variables d'intérêt sont la valeur ( la valeur du nœud) et à gauche et à droite ( les enfants gauche et droit ) . Les variables statiques tmp et tiret sont utilisés pour l'espace temporaire lors de la fusion et des méthodes d'impression. Le constructeur initialise la valeur et laisse à gauche et à droite comme nulle "" SkewHeap public class implémente Comparable {int valeur ; . SkewHeap gauche, à droite ; tmp LinkedList statique static int tiret = 0; (int val) valeur publique SkewHeap { = val ;} } ""
    2

    Utilisez la méthode compareTo comme un moyen de réaliser l'interface Comparable et permettent des listes d'objets SkewHeap à trier . La méthode compareTo doit retourner un nombre négatif , le nombre nul ou positif , selon la façon dont les deux objets doivent être triées . Atteindre cet objectif en effectuant une soustraction sur les valeurs des deux nœuds de telle sorte que les nœuds avec des valeurs inférieures sont triés avant nœuds de plus grande valeur "" public int compareTo ( SkewHeap h ) { Valeur de retour - h.value ; } ". "

    3

    Composez la méthode de hachage , une méthode importante utilisée par fusion. Lorsqu'une fusion est effectuée , les deux amas sont coupés à part sur ​​le côté droit . . La méthode chop chop qui exécute et ajoute les subheaps restant à la liste des tmp "" chop public void () { SkewHeap r = droit ; droite = null; if ( r = null !) R.chop (); tmp.addLast ( this); } ""
    4

    créer la méthode de fusion. L'insert et RetirerTête méthodes à la fois l'utilisation de fusionner pour accomplir leur tâche . La méthode de fusion va couper les deux tas à fusionner , qui stocke toutes les subheaps dans tmp.
    5

    Accomplir le tri de la liste chaînée tmp et en combinant les subheaps en enlevant les deux derniers monceaux de la liste . Ajouter un comme l'enfant le droit de l'autre , échanger les enfants à droite et à gauche et ajouter le dos du tas à la fin de la liste . De cette façon, subheaps hachées sont rassemblés en un seul tas équilibrée. Noeuds gauche sont toujours garantis d'être moins que le droit nœuds et nœuds enfants ont une plus grande valeur que les noeuds parents "" publique SkewHeap fusion ( SkewHeap h ) {//Hacher les noeuds en bas du chemin droit tmp = new LinkedList (). ; cHOP ( ) ; h.chop (); //Trier les noeuds Collections.sort ( tmp ) ; //Fusionner les subheaps while ( tmp.size () > 1) { SkewHeap a = tmp.removeLast (); SkewHeap b = tmp.removeLast (); b.droit = b.left ; b.left = a; tmp.addLast ( b); } return tmp.getFirst (); } ""
    6

    Ecrire le méthode RetirerTête . Cela permettra d'éliminer le nœud de tête et de fusionner les tas d'enfants à gauche et à droite "" publique SkewHeap RetirerTête () {if ( gauche == null && droit == null) return null ; . Else if retour (à gauche == null) à droite ; d'autre if ( droite == null ) return gauche ; left.merge de retour d'autre (à droite) ; } ""
    7

    formuler la méthode d'impression. Cette méthode est important pour le débogage, comme les débogueurs n'ont souvent pas les moyens de voir les structures de données imbriquées comme ce tas d'inclinaison . Il est récursive et tirets correctement " " print public void () { for (int i = 0; i. System.out.println ( value); tiret + +; if ( gauche = null) { for (int i = 0; ! System i . out.println (" left.print (); } if ( droite = null) { for (int i = 0; i System.out.println ( " - > "); right.print ();} tiret - - ; } ""

    Previous :

    next :
      articles connexes
    ·Comment faire votre propre ordinateur Dice Game 
    ·Apprendre Java ligne 
    ·Java 1.5 Tutoriel annotation 
    ·Comment faire pour créer des graphiques en Java 
    ·Comment sortir d'un cadre d'une fenêtre en Java 
    ·Comment faire pour créer un objet non modifiable en Ja…
    ·Comment faire de code Java dans une Applet 
    ·Comment faire pour intégrer Java DB dans NetBeans 
    ·Comment utiliser Netbeans et Java pour créer des servi…
    ·Android UI Développement 
      articles en vedette
    ·Comment faire un chat avec PHP et SQL 
    ·Comment utiliser le script Boolean 
    ·Sun Java Tutorial SQL 
    ·Comment réparer un Microsoft Visual Basic Erreur de dé…
    ·Comment faire une recherche avec des algorithmes Java 
    ·Comment faire pour modifier bloc-notes avec VB6 
    ·À propos de Java Virtual Machine 
    ·Comment comparer des chaînes en JavaScript 
    ·Comment convertir les cordes de Char en C + + 
    ·Debugging Tools for Visual Basic 
    Copyright © Connaissances Informatiques http://fr.wingwit.com