Foros del Web » Programación para mayores de 30 ;) » Java »

problema haciendo Arreglo con direcciones de una lista enlazada

Estas en el tema de problema haciendo Arreglo con direcciones de una lista enlazada en el foro de Java en Foros del Web. Hola!!!! espero q estén bien y puedan ayudarme en este pequeño problema q tengo! Tengo q hacer un vector que guarde la dirección en memoria ...
  #1 (permalink)  
Antiguo 01/09/2011, 20:40
 
Fecha de Ingreso: abril-2011
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta problema haciendo Arreglo con direcciones de una lista enlazada

Hola!!!! espero q estén bien y puedan ayudarme en este pequeño problema q tengo! Tengo q hacer un vector que guarde la dirección en memoria de el primer nodo de una lista. El vector es de tamaño 5, por lo tanto puedo guardar la dirección de 5 listas diferentes. El problema esq que cuando trato de hacerlo me tira un error. Digamos esto es lo q tengo. primero tengo una clase NodoLista q solamente tiene referencia a un objeto de una clase NodosLista este es el código de ambas clases
[
Código:
public class NodoLista {
	NodosLista siguiente;
	
        NodoLista (){
		 siguiente=null; 
	}

}



class NodosLista {

     Object datos;
     NodosLista siguiente;


 NodosLista (Object  valor)
  {  datos =valor;
     siguiente = null;  //siguiente con valor de nulo
  }


NodosLista (Object valor, NodosLista signodo)
{   datos = valor;
    siguiente = signodo; //siguiente se refiere al siguiente nodo
}


Object getObject() {return datos; }


NodosLista getnext() {return siguiente; }

}//Final de la Clase NodosLista
Ok ese es el código de las clases, depués esto es lo q hago para crear el arreglo:
Código:
public class Main {
	public static void main(String[] args) throws IOException 
	{
		
		NodoLista arreglo []=new NodoLista [4];
		NodosLista nana=new NodosLista(24);
		
		arreglo[0].siguiente=nana;
		
		System.out.println(arreglo[0].siguiente.datos );
		
	}

}
el error se me da cuando yo hago arreglo[0].siguiente=nana me tira un error q dice java.lang.NullPointerException....alguna idea de como arreglarlo???
  #2 (permalink)  
Antiguo 02/09/2011, 00:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 17 años, 2 meses
Puntos: 8
Respuesta: problema haciendo Arreglo con direcciones de una lista enlazada

NodoLista arreglo []=new NodoLista [4];
esta instruccion te crea el array pero no su contenido. Si quieres crear el contenido debes hacer un for y crearte cada estructura.

for (int i=0;i<arreglo.length; i++)
{
arreglo[i]= new NodoLista();
}
  #3 (permalink)  
Antiguo 02/09/2011, 13:19
 
Fecha de Ingreso: diciembre-2005
Mensajes: 97
Antigüedad: 19 años
Puntos: 0
Respuesta: problema haciendo Arreglo con direcciones de una lista enlazada

Hola reyhades me parece que estas confundiendo los conceptos, un array no es lo mismo que una lista, asi que no lo puedes tratar de la misma manera, para mas info aqui un enlace: http://es.wikipedia.org/wiki/Lista_(informatica)
Respecto a tu pregunta, aqui te dejo un pequeño código que te muestra una de las maneras de trabajar con listas:

Nodo.java
Código:
public class Nodo {

    private int info;
    private Nodo siguiente;

    public Nodo(){

    }
    public Nodo(int info){
        this.info=info;
    }

    /**
     * @return the info
     */
    public int getInfo() {
        return info;
    }

    /**
     * @param info the info to set
     */
    public void setInfo(int info) {
        this.info = info;
    }

    /**
     * @return the siguiente
     */
    public Nodo getSiguiente() {
        return siguiente;
    }

    /**
     * @param siguiente the siguiente to set
     */
    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }

}
ListaEnlazada.java
Código:
public class ListaEnlazada {
    private Nodo nodo;


    public ListaEnlazada(Nodo nodo) {
        this.nodo =nodo;
    }
    public void insertarNodo(int info){
        Nodo nuevoNodo=new Nodo(info);
        nuevoNodo.setSiguiente(nodo);
        nodo=nuevoNodo;
    }
    public String toString(){
        String salida="  ";
        Nodo ultimo=nodo;
        while(ultimo!=null){
        salida+=ultimo.getInfo()+",";
        ultimo=ultimo.getSiguiente();
        }
        return salida;

    }

}
Demo.java
Código:
public class Demo {

    public Demo(){
        ListaEnlazada lista=new ListaEnlazada(null);
        lista.insertarNodo(5);
        lista.insertarNodo(4);
        lista.insertarNodo(3);
        lista.insertarNodo(2);
        lista.insertarNodo(1);
        System.out.println(lista.toString());
    }
    public static void main(String[] args) {
        new Demo();
    }

}
__________________
_Derek_
  #4 (permalink)  
Antiguo 02/09/2011, 16:12
 
Fecha de Ingreso: abril-2011
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: problema haciendo Arreglo con direcciones de una lista enlazada

hola pavelinhos!! se que un array no es lo mismo q una lista! lo que yo necesitaba era q en el vector se guardara la referencia del primer nodo de una lista. ya encontré cual era mi problema con el código!! muchas gracias por la ayuda

Etiquetas: direccion, enlazada, lista, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.