Clase Nodo
class nodo { int dato; nodo der; nodo izq; nodo( int dat) { this .dato=dat; this .der= null ; this .izq= null ; } } |
Clase Arbol
public class arbol { nodo raiz= null ; public boolean tieneraiz() { if (raiz== null ) return false ; else return true ; } public arbol alta( int dat) { if (!tieneraiz()) { nodo nuevo= new nodo(dat); raiz=nuevo; } else { boolean izq; nodo actual=raiz; while ( true ) { if (actual.dato<dat) izq= false ; else izq= true ; if (!izq) { if (actual.der== null ) { nodo nuevo= new nodo(dat); actual.der=nuevo; break ; } else actual=actual.der; } else { if (actual.izq== null ) { nodo nuevo= new nodo(dat); actual.izq=nuevo; break ; } else actual=actual.izq; } } } return this ; } public boolean baja( int dat) { nodo actual=raiz, anterior=raiz, temp; while ( true ) { if (actual== null ) break ; if (actual.dato==dat) break ; anterior=actual; if (actual.dato<dat) actual=actual.der; else actual=actual.der; } if (actual== null ) return false ; else { if (actual==raiz) { temp=actual.izq; raiz=raiz.der; anterior=raiz; } else if (anterior.der == actual) { temp=actual.izq; anterior=actual.der; } else { temp=actual.izq; anterior.der=actual.izq; } actual= new nodo(); while (actual.izq!= null ) actual=actual.izq; actual.izq=temp; return true ; } } public void imprimirpreorden() { ayudantePreorden(raiz); } public void ayudantePreorden(nodo dat) { if (dat== null ) return ; System.out.printf( "%d " ,dat.dato); ayudantePreorden(dat.der); ayudantePreorden(dat.izq); } public void impririnorden(nodo dat) { if (dat!= null ) { impririnorden(dat.izq); System.out.println( " " +dat.dato); impririnorden(dat.der); } } } |
Clase Main
public class Main public static void main(String[] args) { java.util.Scanner leer= new java.util.Scanner(System.in); arbol x= new arbol(); int z; System.out.print( "Ingrese el numero de Datos a capturar: " ); z=leer.nextInt(); for ( int i= 1 ; i<=z;i++){ int m; System.out.println( "Ingrese Dato " +i+ ": " );m=leer.nextInt(); x.alta(m); } System.out.println( "Valores Capturados en PreOrden:" ); x.imprimirpreorden(); int q; System.out.print( "\nIngrese dato a borrar: " );q=leer.nextInt(); x.baja(q); System.out.println( "\nDespues de borrar el dato " +q+ " :" ); x.imprimir(); } } |