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

Imprimir alreves una lista enlazada

Estas en el tema de Imprimir alreves una lista enlazada en el foro de Java en Foros del Web. Bueno la idea es insertar N cantidad de números y imprimirlos alreves mediante una lista enlazada lo trata de hacer con arreglos pero tenia un ...
  #1 (permalink)  
Antiguo 18/01/2013, 17:30
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Pregunta Imprimir alreves una lista enlazada

Bueno la idea es insertar N cantidad de números y imprimirlos alreves mediante una lista enlazada lo trata de hacer con arreglos pero tenia un limite de tamaño ya inserto haora al momento de imprimirlos solo me imprime el ultimo numero pero lo demás me lo vota como null les dejo mis metodos

creo que el método visualizar es el malo

public void Insertar(int x){
NumeroInvertido Nuevo;
Nuevo=new NumeroInvertido();
Nuevo.info=x;
Nuevo.siguiente=null;
Nuevo.anterior=null;
if(principio==null){
principio=Nuevo;
finall=Nuevo;



}
else{
Nuevo.anterior=finall.siguiente;
finall=Nuevo;

}

}

public void Vizualizar(){
NumeroInvertido temp;


if(principio!=null){
temp=finall;
while(temp!=principio){
j.append(temp.info+",");
temp=temp.anterior;


}
}
}





Aquí les dejo la clase completa para que lo corran pero creo que mi error es en vizualiazar



import java.awt.event.ActionListener;
import javax.swing.*;

public class NumeroInvertido extends JFrame {
JLabel titulo=new JLabel("Numero invertido");
JLabel titulo2=new JLabel("Ingresa un numero");
JTextField g=new JTextField();
JButton Ingresar,Limpiar,Salir;
int numero;
JTextArea j=new JTextArea();
NumeroInvertido principio,finall,siguiente,anterior;
private int info;


public NumeroInvertido(){
principio=null;
finall=null;

setSize(400,250);
setTitle("Numero Invertido");
setLocation(460,200);
getContentPane().setLayout(null);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);

titulo.setBounds(80,30,100,30);
getContentPane().add(titulo);

titulo2.setBounds(20,60,120,30);
getContentPane().add(titulo2);

g.setBounds(135,60,100,30);
getContentPane().add(g);

final JButton Ingresar=new JButton("Ejecuta");
Ingresar.setBounds(240,60,100,30);
getContentPane().add(Ingresar);

Limpiar=new JButton("Limpiar");
Limpiar.setBounds(120,160,80,30);
getContentPane().add(Limpiar);

Salir=new JButton("Salir");
Salir.setBounds(210,160,80,30);
getContentPane().add(Salir);

j=new JTextArea();
JScrollPane barra=new JScrollPane(j);
j.setBounds(80,100,200,50);
getContentPane().add(j);


ActionListener accion=new java.awt.event.ActionListener() {

@Override
public void actionPerformed(java.awt.event.ActionEvent evento) {

Object obj=evento.getSource();

if(obj==Salir){
System.exit(0);
}
if(obj==Ingresar){
int x=Integer.parseInt(g.getText());
j.append(x+",");
Insertar(x);
g.setText("");

}
if(obj==Limpiar){
Vizualizar();
}



}
};
Salir.addActionListener(accion);
Ingresar.addActionListener(accion);
Limpiar.addActionListener(accion);

}

public void Insertar(int x){
NumeroInvertido Nuevo;
Nuevo=new NumeroInvertido();
Nuevo.info=x;
Nuevo.siguiente=null;
Nuevo.anterior=null;
if(principio==null){
principio=Nuevo;
finall=Nuevo;



}
else{
Nuevo.anterior=finall.siguiente;
finall=Nuevo;

}

}

public void Vizualizar(){
NumeroInvertido temp;


if(principio!=null){
temp=finall;
while(temp!=principio){
j.append(temp.info+",");
temp=temp.anterior;


}
}
}



public static void main(String args[]){
new NumeroInvertido().setVisible(true);
}

}
  #2 (permalink)  
Antiguo 19/01/2013, 11:57
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Imprimir alreves una lista enlazada

Yo te recomiendo que revises la API ...

Te comento que existen diferentes tipos de List en Java ....

POr ejemplos un ArrayList. .. puedes insertar como sacar datos por posicion ...

entonces seria cosa que sepas el tamaño de la lista y apartir de ahi va decrementando


Espero que aya orientado
  #3 (permalink)  
Antiguo 19/01/2013, 12:12
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Imprimir alreves una lista enlazada

Gracias amigo por tu comentario todo es bueno ,fíjate que mi duda e incluso no lo e podido hacer es ingresar N cantidad de números sin fijar el tamaño a un arreglo me an dicho que Arraylist pero estando investigando se guardan objetos en el Arraylist entonces para pasarlos a tipo primitivos ni idea poreso es que decidi hacerlo con enlazadas haver si funcionaba, pero imprimirlos de inicio a final si puedo pero de final a inicio no
  #4 (permalink)  
Antiguo 20/01/2013, 10:51
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Imprimir alreves una lista enlazada

Pero vez ...

Se nota que no haz revisado el API

un ArrayList es dinamico ....

esta muy sensillo lo que queires hacer ya viene con metodos de insercion dinamica y por posicion ...

hay miles de ejemplos por internet .... el codigo que pusiste tienes que revisalo lo qui quieres hacer sale no 10 linias de codigo como maximo ...

Yo te recomiendo que revises por todoas partes y luego postees .. algo que no hay solucion

Te dejo un ejemplo con swing ... espero te ayude ... lo hice en Netbeans

http://www.mediafire.com/?a9ui9vepptvw62g

Última edición por AdvKael; 20/01/2013 a las 11:03
  #5 (permalink)  
Antiguo 20/01/2013, 21:41
 
Fecha de Ingreso: junio-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Imprimir alreves una lista enlazada

Muchas gracias mi amigo ya entendí revisare la API bien para la otra gracias

Etiquetas: listas, null
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 07:01.