每个节点都有三个数据和一个指针,当打印时只显示当前节点。
write
作为自动增量变量创建,例如变量称为节点,然后递增并称为node1。
我必须创建一个自动增量变量才能打印所有节点。
答案 0 :(得分:0)
我在你的代码中修复了很多东西:
1:你有一个嵌套的for循环;我将其重新组合为2个for循环:一个用于读取新节点的数据,另一个用于打印数据。
2:使用链接列表时,必须使用辅助列表,方法是保持标题再次使用列表。
3:在打印循环中,完成一个循环,你必须得到下一个节点。
这是:
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
}
}
}
如评论中所述,保持代码良好缩进以便于阅读是一种非常好的做法。祝你好运!