Connaissances Informatiques >> programmation >> Programmation Java >> Content
  Derniers articles
  • Exceptions de fichiers pour les appl…
  • Comment puis-je afficher un nombre e…
  • Comment faire Inorder Traversal dans…
  • Comment faire pour installer la plus…
  • Les inconvénients des applets Java 
  • Comment remplacer un retour chariot …
  • Comment faire pour supprimer les zé…
  • Comment créer XMLs pour un joueur J…
  • Comment réduire Float en Java 
  • Comment écrire un programme d'appli…
  •   Programmation Java
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Programmation Java

    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 - - ; } ""

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire pour créer une date à partir d'une chaîne en Java 
  • Comment faire pour afficher des pourcentages en Java 
  • Comment faire pour obtenir la valeur de Mod en Java 
  • Comment faire pour mettre une application Java dans une page Web 
  • Tutoriel pour l' application de bureau NetBeans 
  • Comment construire une chaîne et définir le texte par la chaîne en Java 
  • Les différences entre les JSP et JSPF 
  • Comment réparer Upside Down Java Photos 
  • Comment écrire un programme en Java que les entrées de n mots ( String) et les envoie par ordre al…
  • Codage en Java 
  • Connaissances Informatiques © http://www.ordinateur.cc