| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Programación Java >> Content
    Cómo utilizar un montón de inclinación en Java
    Un montón sesgo es una estructura de datos abstracta. Aunque Java no proporciona para una clase de árbol binario , el montón de inclinación puede ser pensado como un árbol de búsqueda de auto-organización binaria . La clase Heap Skew Java implementa la interfaz Comparable para listas de objetos SkewHeap se pueden clasificar fácilmente. Instrucciones
    1

    Escribir el esqueleto de la clase SkewHeap . Las variables de interés son el valor ( el valor del nodo ) y la izquierda y la derecha ( los hijos izquierdo y derecho ) . Las variables estáticas tmp y guión se utilizan para el espacio temporal de la fusión y de los métodos de impresión. El constructor inicializa el valor y deja a la izquierda y la derecha como nulo " " SkewHeap clase pública implementa Comparable { int valor ; . SkewHeap izquierda, derecha ; tmp LinkedList estática ; static int guión = 0 ; público ( int val) {valor SkewHeap = val ;} } " "
    2

    Usar el método compareTo como una forma de cumplir con la interfaz comparable y permiten listas de objetos SkewHeap se ordenen . El método compareTo debe devolver un número negativo , el número cero o positiva , dependiendo de cómo se deben ordenar los dos objetos. Lograr esto mediante la realización de una sustracción de los valores de los dos nodos " de tal manera que los nodos con valores inferiores se ordenan antes nodos de mayor valor ", "public int compareTo ( SkewHeap h ) { valor de retorno - h.value ; }". "

    3

    Componer el método de cortar, un importante método utilizado por fusión . Cuando se realiza una fusión, ambas pilas se cortan aparte por el lado derecho . . El método chop chop que realiza y agrega los subheaps restantes a la lista tmp " " chop public void () { SkewHeap r = derecha , derecha = null; if ( r = null !) R.chop (); tmp.addLast ( this); } " "
    4

    Crear el método de combinación. Los métodos de inserción y removeHead tanto el uso de combinación para cumplir con su tarea. El método de combinación tajará ambos montones para ser fusionadas , que almacena todos los subheaps en tmp.
    5

    Lograr la clasificación de la lista enlazada tmp y combinar los subheaps quitando los dos últimos montones de la lista. Añadir uno como el hijo derecho del otro, intercambiar los hijos izquierdo y derecho y agregar el nuevo montón al final de la lista . De esta manera , subheaps picados se vuelven a montar en un único montón equilibrada . Nodos izquierda siempre se garantiza que sea menos de los nodos correctos y nodos secundarios tienen un valor superior a los nodos primarios " " público SkewHeap merge ( SkewHeap h ) {//Cortar los nodos por el camino correcto tmp = new LinkedList (). ; chop (); h.chop (); //Ordenar los nodos Collections.sort ( tmp ) ; //Combinar los subheaps while ( tmp.size ()> 1 ) { a = SkewHeap tmp.removeLast (); SkewHeap b = tmp.removeLast (); b.right = b.left ; b.left = a; tmp.addLast ( b ) ; } return tmp.getFirst (); } " "
    6

    Escriba el método removeHead . Esto eliminará el nodo principal y fusionar los niños montones izquierda y derecha ", " público SkewHeap removeHead () { if ( izquierda == null && derecha == null) return null ; . Else if return ( izquierda == null) derecho ; más if ( derecha == null ) return izquierda ; left.merge vuelta más ( derecha) ;} " "
    7

    Formular el método de impresión . Este método es importante para la depuración, como depuradores con frecuencia no tienen las instalaciones para ver las estructuras de datos anidadas como este montón de inclinación. Es recursivo y guiones correctamente " " print public void () {for (int i = 0 ; . I System.out.println (valor) ; guión + + , y si (izquierda = null) {for (int i = 0 ; ! System i . out.println ( " left.print () ;} if ( derecha = null) {for (int i = 0 ; i System.out.println ( " - > ") ; right.print () ;} guión - - ;} " "

    Previous :

    next :
      Artículos relacionados
    ·Cómo construir un archivo JAR con Build.xml 
    ·¿Cómo puedo hacer una lista de Hibernate no cuenta co…
    ·Cómo enviar SMS con JavaMail 
    ·Los beneficios de JDK 1.6 
    ·Cómo instalar el Java Runtime 5.0 en Windows XP 
    ·Android Phone App Development 
    ·Cuándo utilizar JSP Vs . Jspf 
    ·Cómo leer de un archivo con JAVA 
    ·Cómo compilar en Java 
    ·Cómo obtener un número entero de nextLine 
      Artículos destacados
    ·Cómo aprender programación Computadora 
    ·Cómo elegir el formulario de inicio en una aplicación…
    ·Cómo mostrar una dirección URL mediante expresiones r…
    ·Cómo calcular la suma de 3 números en Visual Basic 
    ·Cómo cambiar INT a un objeto en C + + 
    ·Cómo utilizar el Editor de menús en Visual Basic 
    ·Cómo quitar el final de la cadena en Ruby 
    ·Cómo programar en Visual C 
    ·Cómo crear una clase abstracta en Java utilizando NetB…
    ·Línea C + + Formación 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com