TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Programação de Computadores

Por:   •  3/11/2021  •  Trabalho acadêmico  •  2.110 Palavras (9 Páginas)  •  76 Visualizações

Página 1 de 9

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package ArvoreSbb;

import Item.Item;

public class ArvoreSbb {

public static int comparar; //para conseguirmos calcular o numero de comparações

private static final byte Horizontal = 0;

private static final byte Vertical = 1;

private No raiz;

private boolean propSBB;

public ArvoreSbb(){

this.raiz = null;

this.propSBB = true;

}

private static class No {

Item reg;

No esq, dir;

byte incE, incD;

}

public No insere(Item reg, No pai, No filho, boolean filhoEsq){ //para inserirmos os valores dentro dos nos das arvores

if(filho == null){

filho = new No();

filho.reg = reg;

filho.incE = Vertical;

filho.incD = Vertical;

filho.esq = null;

filho.dir = null;

if(pai != null)

if(filhoEsq)

pai.incE = Horizontal;

else

pai.incD = Horizontal;

this.propSBB = false;

}

else if(reg.compara (filho.reg) < 0){

filho.esq = insere(reg, filho, filho.esq, true);

if(!this.propSBB)

if(filho.incE == Horizontal){

if(filho.esq.incE == Horizontal){

filho = this.ee(filho);

if(pai != null)

if(filhoEsq)

pai.incE = Horizontal;

else

pai.incD = Horizontal;

}

else if(filho.esq.incD == Horizontal){

filho = this.ed(filho);

if(pai != null)

if(filhoEsq)

pai.incE = Horizontal;

else

pai.incD = Horizontal;

}

}

else

this.propSBB = true;

}

else if(reg.compara(filho.reg) > 0){

filho.dir = insere(reg, filho, filho.dir, false);

if(!this.propSBB)

if(filho.incD == Horizontal){

if(filho.dir.incD == Horizontal){

filho = this.dd(filho);

if(pai !=null)

if(filhoEsq)

pai.incE = Horizontal;

else

pai.incD = Horizontal;

}

else if(filho.dir.incE == Horizontal){

filho = this.de(filho);

if(pai != null)

if(filhoEsq)

pai.incE = Horizontal;

else

pai.incD = Horizontal;

}

}

else

this.propSBB = true;

}

else{

//System.out.println("Erro: Registro ja existente");

this.propSBB = true;

}

return filho;

}

...

Baixar como (para membros premium)  txt (5.1 Kb)   pdf (40 Kb)   docx (9.7 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com