2017-10-19 15 views
-1

キーボードでリストを手動で作成するとき次の欠点があります。変数nodoには現在の値のみが格納されます。 ListaEnlazada1 nodo =新しいListaEnlazada1();キーボードでリンクされたリストのマニュアル

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

} 

} 

} 

} 

私は変数は私が入るたびに、私は何も働いていない試みているものを、例えば、第1の繰り返しなど、ノード1、第2の反復NODE2を、名前を変更するようにコードを変更する必要があります。演習では、次の点を考慮して、シリーズの現在のノードの位置を表示するには、リンクリストライブラリ

答えて

0

せずに実行する必要があります。

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

あなたにも後のすべての各ノードに関する情報を表示し検討するかもしれませんノードが入力されているので、プログラムの出力がより読みやすくなります。あなたはそれの前にノード内の各ノードを格納しているので、あなたはそれらを介して、サイクルにこれを試みることができる:

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

imprimirNodo(nodo)方法は、以下です:

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); 
} 
関連する問題