Java 不工作打印链表、节点多数据

Java 不工作打印链表、节点多数据,java,linked-list,Java,Linked List,每个节点有三个数据和一个指针,打印时只显示当前节点 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[] ar

每个节点有三个数据和一个指针,打印时只显示当前节点

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

}

}

}

}
创建自动递增变量时,例如,该变量称为node,然后递增并称为node1


我必须创建一个自动增量变量才能打印所有节点。

我修复了代码中的一些问题:

1:您有一个嵌套的for循环;我将其重新组装为2个for循环:一个用于读取新节点的数据,另一个用于打印数据

2:使用链表时,必须使用辅助列表,通过维护标题再次使用列表

3:在打印for循环中,完成一个循环后,必须获得下一个节点

这是:

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

        // Create a node to keep the header, and an auxiliar
        // to traverse the list
        ListaEnlazada1 cab = null, aux = null;

        /* 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)
                cab = aux = nodo;
            else {
                aux.nodosiguiente = nodo;
                aux = aux.nodosiguiente;
            }
            contador++;
        }

        /* nodes are printed */
        for (int i =1; i <= n; i++){
        // When using "println", automatically jumps a line
        // after printing, so there's no need to write "\n"
        // unless you want to jump a line twice
            System.out.println("marca " +cab.marca); 
            System.out.println("modelo " +cab.modelo);
            System.out.println("kilometraje " +cab.kilometraje);
            System.out.println("apuntador " +cab.nodosiguiente + "\n");
            cab = cab.nodosiguiente; // Here we get the next node
        }
    }
}

正如在评论中所说的,保持代码良好的缩进以便于阅读是一种非常好的做法。祝你好运

格式化后的代码很难阅读。请考虑编辑你的文章和修改你的缩进风格,使它是一致的和一致的。我通常避免使用制表符来缩进站点,因为软件通常不能很好地使用制表符,并将每个代码块缩进4个空格。