2017-10-19 1 views
-1

beim manuellen Erstellen der Liste per Tastatur habe ich den folgenden Nachteil, die Variable nodo speichert nur den aktuellen Wert. ListaEnlazada1 nodo = neu ListaEnlazada1();verkettete Liste manuell eingegeben durch Tastatur

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");  

} 

} 

} 

} 

Ich brauche den Code zu ändern, so dass die Variable den Namen zum Beispiel jedes Mal, wenn ich geben Sie die für ändert sich die erste Iteration node1, die zweite Iteration Knoten2 usw., was ich habe versucht, nichts hat funktioniert. die Übung muss

Antwort

0

Zur Anzeige des aktuellen Knotens Position in der Reihe, sollten Sie Folgendes berücksichtigen, ohne die verknüpfte Liste Bibliothek durchgeführt werden: nachdem alle Informationen zu den einzelnen Knoten

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

Sie sollten erwägen auch die Anzeige Knoten wurden eingegeben, damit die Ausgabe des Programms besser lesbar ist. Da Sie jeden Knoten im Knoten, bevor sie gespeichert werden, können Sie dies, um durch sie versuchen:

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

wo die imprimirNodo(nodo) Methode ist folgende:

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); 
}