Programação  
 
Conhecimento computador >> Programação >> Programação em Java >> 
Como usar um Skew Heap em Java
Um monte de inclinação é uma estrutura de dados abstracta. Embora Java não prevê uma classe de árvore binária , a pilha de inclinação pode ser pensado como uma árvore binária de busca de auto-organização . A classe Java Torcer Heap implementa a interface Comparable assim listas de objetos SkewHeap podem ser classificados facilmente. Instruções
1

Escreva o esqueleto da classe SkewHeap . As variáveis ​​de interesse são de valor ( o valor do nó ) e à esquerda e à direita ( o filhos esquerdo e direito ) . O tmp e variáveis ​​estáticas travessão são usados ​​para espaço temporário nos métodos de mesclagem e imprimir . O construtor inicializa valor e deixa esquerda e direita como null " " public class SkewHeap implementa Comparable {value int; . SkewHeap esquerda, direita ; estática LinkedList tmp ; int travessão = 0 estática; SkewHeap (int val) {value público = val ;} } " "
2

Use o método compareTo , como forma de cumprir a interface Comparable e permitir listas de objetos SkewHeap a ser classificado. O método compareTo deve retornar um número negativo, zero ou número positivo , dependendo de como os dois objetos devem ser classificados. Alcançar esta realizando uma subtração dos valores dos dois nós ' de tal forma que os nós com valores menores são ordenados antes de nós de maior valor " " public int compareTo ( SkewHeap h ) { valor de retorno - h.value ; } ". "

3

Componha o método chop, um importante método usado por mesclagem. Quando uma fusão é realizada , os dois montes são cortados em pedaços para o lado direito . O método costeleta costeleta que executa e adiciona os subheaps restantes à lista tmp " " costeleta public void () { SkewHeap r = direita; . Direito = null; if ( r = null !) R.chop (); tmp.addLast ( this); } " "
4

Criar o método de mesclagem. A inserção e métodos RemoveHead tanto para uso de mesclagem para realizar sua tarefa . O método merge vai cortar ambos os montes a ser incorporada, que armazena todos os subheaps em tmp.
5

realizar a classificação da lista ligada tmp e combinando as subheaps removendo os dois últimos montes da lista. Adicionar um como o filho direito do outro, trocar a crianças direita e esquerda e adicione a pilha de volta para o final da lista . Desta forma , subheaps picadas são reagrupados em uma única pilha equilibrada . Nós esquerda são sempre garantia de ser menos do que os nós certos, e nós filhos têm um valor maior do que nós pai " " merge SkewHeap público ( SkewHeap h ) {//Pique os nós para baixo o direito tmp caminho = new LinkedList (). ; cortar (); h.chop ( ) //Ordenar os nós Collections.sort ( tmp ) //Mesclar as subheaps while ( tmp.size () > 1) { SkewHeap a = tmp.removeLast (); SkewHeap b = tmp.removeLast (); b.right = b.left ; b.left = a; tmp.addLast ( b );} retornar tmp.getFirst ();} " "
6

Escreva o método RemoveHead . Isto irá remover o nó principal e mesclar os montes filho esquerdo e direito " " público SkewHeap RemoveHead () {if (esquerda == null && direita == null ) return null ; . Else if ( esquerda == null ) return direito , senão if ( direita == null ) return esquerda ; left.merge retorno outra (direita) ;} " "
7

Formular o método de impressão. Este método é importante para a depuração, como depuradores muitas vezes não têm as facilidades para visualizar estruturas de dados aninhadas como este montão de inclinação . É recursivo e travessões corretamente " " print public void () { for (int i = 0; . I System.out.println ( valor ); travessão + +; ! If ( esquerda = null) { for (int i = 0; System i . out.println ( " left.print ();} if ( direita = null) { for (int i = 0; i System.out.println ( " - > "); right.print ();} travessão - - ;} " "

Anterior :

Próximo : No
  Os artigos relacionados
·Java e não resolvido Erro de compilação 
·Como Criar Data objeto de String em Java 
·Unicode para a conversão de caracteres em Java 
·Como calcular a porcentagem de caracteres em Java 
·Como adicionar imagens para JPanels 
·Tamanho máximo de heap de JVM 
·Como criar JAS Com Dependências 
·Técnicas de depuração Java 
·O que é o NetBeans Nimbus 
·Como instalar o Java Software Development Kit 
  Artigos em destaque
·Como Gerenciar Segmentos de Rollback 
·Comparação de algoritmos de ordenação 
·Como fazer um arquivo CSV em Java 
·Como comparar Fluxogramas e Pseudocódigo 
·O que é Programação de Computadores 
·Como criar Enumerar hierarquias com Java 
·Três categorias de Linguagens de Programação 
·Como fazer sobreposição CSS Divs movem juntos 
·Como combinar muitas figuras Com WinEdt 
·Como alterar a cor de um tipo de letra com código HTML…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados