elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  AYUDA JAVA POR FAVOR.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA JAVA POR FAVOR.  (Leído 3,692 veces)
[Black Vomit]

Desconectado Desconectado

Mensajes: 15


JAVA ADICTED


Ver Perfil
AYUDA JAVA POR FAVOR.
« en: 11 Julio 2010, 00:38 am »

Saludos! bueno tengo un pequeño problema.  Estoy implementando un programa con menú, el cuál llama a diversos métodos que operan en un árbol binario en JAVA.   He implementando varios, sin embargo, me complica sólo uno, el Borrar Hoja.

Lo tengo implementando pero sé que hay un detalle por ahí, puesto que me arroja NULLPOINTER EXCEPTION cuando lo llamo desde mi case.

Acá les dejo el método BORRARNODOHOJA
Código:
boolean borrarNodoHoja(NodoBinario nodo) 
     { 
    boolean se_borro = false; 
    NodoBinario nodo_padre  = nodo.getPadre();
   
    if(nodo_padre.getDerecho() == nodo)
    { 
    nodo_padre.setDerecho(null); 
        } else
        { 
        nodo_padre.setIzquierdo(null);
        }
             nodo= null; 
             se_borro = true;
    return se_borro;   
     } 


Acá mi clase NOBODINARIO.JAVA

Código:
import javax.swing.*;
public class NodoBinario
{
   public int dato;
   public NodoBinario izdo;
   public NodoBinario dcho;
   private Object informacion;
   private NodoBinario padre;

    public NodoBinario(int t)
    {
    this.dato=t;
    this.izdo=null;
        this.dcho=null;
    }
   
    //MODIFICACIONES **********************************************************
   
public NodoBinario(Object informacion)
{
this.informacion = informacion;
this.izdo   = null;
this.dcho    = null;
}


public NodoBinario getDerecho()
{
return dcho;
}

public NodoBinario getIzquierdo()
{
return izdo;
}

public Object getInformacion()
{
return informacion;
}

public NodoBinario getPadre()
{
return padre;
}

public void setDerecho(NodoBinario derecho)
{
this.dcho = derecho;
}

public void setIzquierdo(NodoBinario izquierdo)
{
this.izdo = izquierdo;
}

public void setInformacion(Object informacion)
{
this.informacion = informacion;
}

public void setPadre(NodoBinario padre)
{
this.padre = padre;
}
//MODIFICACIONES **********************************************************





    /*public NodoBinario(NodoBinario ramaIzdo,int t,NodoBinario ramaDcho)
    {
    dato=t;
    izdo=ramaIzdo;
    dcho=ramaDcho;
    }*/
    public int valorNodo()    // Otorga el contenido del nodo, la información contenida en él
    {
  return dato;
    }

    public NodoBinario subarbolIzdo()
    {
  return izdo;
    }

    public NodoBinario subarbolDcho()
    {
  return dcho;
    }
    public void nuevoValor(int d)
    {
  dato=d;
    }
    public void ramaIzdo(NodoBinario n)
    {
  izdo=n;
    }

    public void ramaDcho(NodoBinario n)
    {
  dcho=n;
    }

    public void visitar()
    {
      JOptionPane.showMessageDialog(null, "El Nodo es: " +  dato+"\t");
    }
}

Acá el case en mi MAIN que llama al método.
Código:
                case 10:
                    arbol.borrarNodoHoja(arbol.raizArbol());
                    salida="NODO HOJA BORRADO EXITOSAMENTE";
                    asalida.setText(salida);
                    JOptionPane.showMessageDialog(null, asalida, "BORRAR NODO HOJA", JOptionPane.WARNING_MESSAGE);

                break;


Agradecido de antemano!


En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: AYUDA JAVA POR FAVOR.
« Respuesta #1 en: 11 Julio 2010, 00:45 am »

¿Tanto cuesta postear en el subforo de Java?


En línea

[Black Vomit]

Desconectado Desconectado

Mensajes: 15


JAVA ADICTED


Ver Perfil
Re: AYUDA JAVA POR FAVOR.
« Respuesta #2 en: 11 Julio 2010, 00:45 am »

¿Tanto cuesta postear en el subforo de Java?

Disculpa, no había notado el subforo. 
En línea

Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: AYUDA JAVA POR FAVOR.
« Respuesta #3 en: 11 Julio 2010, 00:45 am »

¿Tanto cuesta postear en el subforo de Java?

Yo creo que no lo ven, deben ponerlo afuera de Programación General.
En línea



[Black Vomit]

Desconectado Desconectado

Mensajes: 15


JAVA ADICTED


Ver Perfil
Re: AYUDA JAVA POR FAVOR.
« Respuesta #4 en: 11 Julio 2010, 00:47 am »

¿Tanto cuesta postear en el subforo de Java?

Yo creo que no lo ven, deben ponerlo afuera de Programación General.

Claro, acabo de registrarme, hace rato conozco la web pero no había tenido intenciones de participar, además de intentar que alguien me sugiera alguna solución a la problemática que plantié.  Sigo intentándolo de todas formas, jeje.

En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: AYUDA JAVA POR FAVOR.
« Respuesta #5 en: 11 Julio 2010, 05:22 am »

unas modificaciones y estará listo

http://www.acidxoft.0fees.net/arboles.htm
En línea

tragantras


Desconectado Desconectado

Mensajes: 465


Ver Perfil
Re: AYUDA JAVA POR FAVOR.
« Respuesta #6 en: 11 Julio 2010, 10:58 am »

yo de ti comprobaría que la referencia al padre no es nula antes de pedirle ningun método o recibiras un nullpointerexception de regalo cuando invoques ese método sobre el nodo raiz.

Código
  1. boolean borrarNodoHoja(NodoBinario nodo)
  2.     {  
  3.     boolean se_borro = false;  
  4.     NodoBinario nodo_padre  = nodo.getPadre();
  5. /*---------------------------------------------------------------*/
  6.        if(nodo_padre==null) return false;
  7. /*---------------------------------------------------------------------*/  
  8.     if(nodo_padre.getDerecho() == nodo)
  9.     {  
  10.     nodo_padre.setDerecho(null);  
  11.        } else
  12.        {  
  13.         nodo_padre.setIzquierdo(null);
  14.        }
  15.             nodo= null;  
  16.             se_borro = true;
  17.     return se_borro;  
  18.     }  
En línea

Colaboraciones:
1 2
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
IMPLEMENTACION EN JAVA, AYUDA X FAVOR
Java
wallman1987 2 2,106 Último mensaje 13 Noviembre 2013, 22:01 pm
por wallman1987
Tabla Java Valor Min y Maximo Ayuda por favor
Java
tcubanito 1 2,172 Último mensaje 7 Agosto 2014, 11:49 am
por madara1412
Ayuda por favor java.lang.NullPointerException
Java
TheZeck 1 2,620 Último mensaje 2 Mayo 2017, 00:55 am
por HardC0d3
Ayuda por favor Proyecto java
Java
Camiloher1961 2 2,241 Último mensaje 9 Junio 2021, 23:17 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines