Ayuda con las listas enlazadas
Publicado por William (1 intervención) el 07/04/2020 01:14:26
Hola. Soy William y estoy empezando a programar en Java y es la primera vez que intento entender un lenguaje de programación orientado a objetos. Estoy creando una estructura de datos tipo Lista Enlazada y tengo una duda respecto a la clase que hace referencia a los nodos de los objetos de la lista.
Como veis, usando la función agregarInicio(int dato), creo un objeto llamado nuevo de clase Nodo (esta clase posee un dato int y un objeto clase Nodo que es la referencia al siguiente objeto de la lista). En teoria este nuevo nodo creado es un nodo único en la lista y tiene otro objeto nodo único que sería la referencia al siguiente objeto de la lista único también. Mi duda es que, cada vez que ejecute esa función no estaría reescribiendo el objeto nuevo? Es decir, tengo un nodo con una referencia y al usar esa función no estaría simplemente sobreescribiendo ese mismo objeto? Se que en la práctica funciona pero mi mente acostumbrada a la programación estructurada no me deja entender porque hay varios objetos clase Nodo con el mismo nombre pero sin embargo "¿ocupar lugares en la memoria distintos?". Gracias por la atención y un saludo :).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class ListaEnlazada {
protected Nodo primero;
public ListaEnlazada() {
primero = null;
}
public ListaEnlazada agregarInicio(int dato) {
Nodo nuevo = new Nodo(dato);
nuevo.ref = primero;
primero = nuevo;
return this;
}
public void agregarFinal() {}
public void buscar() {}
public void eliminar() {}
public void verLista() {
Nodo nodov;
nodov = primero;
while(nodov!=null) {
System.out.println(nodov.dato);
nodov = nodov.ref;
}
}
}
Como veis, usando la función agregarInicio(int dato), creo un objeto llamado nuevo de clase Nodo (esta clase posee un dato int y un objeto clase Nodo que es la referencia al siguiente objeto de la lista). En teoria este nuevo nodo creado es un nodo único en la lista y tiene otro objeto nodo único que sería la referencia al siguiente objeto de la lista único también. Mi duda es que, cada vez que ejecute esa función no estaría reescribiendo el objeto nuevo? Es decir, tengo un nodo con una referencia y al usar esa función no estaría simplemente sobreescribiendo ese mismo objeto? Se que en la práctica funciona pero mi mente acostumbrada a la programación estructurada no me deja entender porque hay varios objetos clase Nodo con el mismo nombre pero sin embargo "¿ocupar lugares en la memoria distintos?". Gracias por la atención y un saludo :).
Valora esta pregunta
0