2017-10-19 20 views
-1

lors de la création manuelle de la liste au clavier J'ai l'inconvénient suivant, la variable nodo ne stocke que la valeur courante. ListaEnlazada1 nodo = nouveau ListaEnlazada1();Manuel de listes chaînées entrées au clavier

package lista.enlazada1; 
import java.util.Scanner; 

public class ListaEnlazada1 { 

public String marca; 
public String modelo; 
public int kilometraje; 
public ListaEnlazada1 nodosiguiente; 


public static void main(String[] args) { 
/* enter the number of nodes to be created */ 
Scanner leer= new Scanner(System.in); 
System.out.println("Digite la cantidad de nodos a ingresar)"); 
int n,contador=0; 
n=leer.nextInt(); 

/* the three data of the node is entered */ 
for (int i =1; i <= n; i++){ 
    ListaEnlazada1 nodo = new ListaEnlazada1(); 
    System.out.print("ingrese la marca "); 
     nodo.marca=leer.next(); 
     System.out.print("ingrese el modelo "); 
     nodo.modelo=leer.next(); 
     System.out.print("ingrese el kilometraje "); 
     nodo.kilometraje=leer.nextInt(); 

/* the node is created */ 

if(contador==0){ 
nodo.nodosiguiente = null; 
contador ++; 
} else { 
nodo.nodosiguiente = nodo; 
contador ++; 
}  

/* nodes are printed */ 
for (i =1; i <= n; i++){ 
System.out.println("marca " +nodo.marca+ "\n"); 
    System.out.println("modelo " +nodo.modelo+ "\n"); 
    System.out.println("kilometraje " +nodo.kilometraje+ "\n"); 
    System.out.println("apuntador " +nodo.nodosiguiente + "\n");  

} 

} 

} 

} 

Je dois changer le code de sorte que la variable change le nom à chaque fois que je rentre dans la pour, par exemple, la première itération node1, la deuxième itération node2, etc. ce que je n'ai rien essayé a travaillé. l'exercice doit se faire sans la bibliothèque de liste chaînée

Répondre

0

Pour afficher la position du nœud actuel dans la série, considérer les points suivants:

for(int i = 1; i <= n; i++) { 
    System.out.println("----------"); 
    System.out.println("Ingrese los datos del nodo " + i); 
    /* user input */ 
} 

Vous pourriez aussi bien envisager d'afficher des informations sur chaque noeud après tout des noeuds ont été entrés afin que la sortie du programme soit plus lisible. Puisque vous stockez chaque nœud du nœud avant, vous pouvez essayer ce faire défiler les:

ListaEnlazada actual = primerNodo; // save the first node somewhere before user input 
imprimirNodo(actual); 
while((actual = actual.nodosiguiente) != null) { 
    imprimirNodo(actual); 
} 

où la méthode imprimirNodo(nodo) est la suivante:

static void imprimirNodo(ListaEnlazada1 nodo) { 
    System.out.println("----------"); 
    System.out.println("Marca: " + nodo.marca); // No need to break the line manually. 
    System.out.println("Kilometraje: " + nodo.kilometraje); 
    /* Note that printing nodo.nodosiguiente may lead to 
    * unreadable output unless you override toString() */ 
    System.out.println("Apuntador: " + nodo.nodosiguiente); 
}