Saltar navegación

20260203 Colecciones_6_enlazada - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 7 de febrero de 2026 por Raquel G.

1 visualizaciones

Descargar la transcripción

Bueno, pues habréis hecho algo parecido 00:00:02
O deberíais 00:00:05
A esos dos métodos de ahí 00:00:06
¿Vale? 00:00:09
Un ratito más 00:00:14
Venga, dejo un ratito más 00:00:15
Los dejo ahí puestos 00:00:19
El que se haya rendido 00:00:20
Si quiere que los copie, los entienda 00:00:22
Los pruebe 00:00:25
Y el que no, pues que apure hasta que le funcione 00:00:25
Un ratito más 00:00:29
A ver 00:00:30
Nuestra lista 00:00:36
Bueno, no sé si desde ahí ves algo 00:00:40
Nuestra lista 00:00:44
Es esta 00:00:48
Dato siguiente 00:00:53
Dato siguiente 00:00:58
Voy a hacer una más 00:01:05
Y la dejo 00:01:08
Dato siguiente 00:01:10
Y nulo 00:01:13
Vale, esta es nuestra lista 00:01:15
¿Vale? Entonces 00:01:17
¿Borrar qué significa? 00:01:19
Imagínate que queremos borrar este 00:01:21
Que sería en este caso 00:01:23
El de posición 1, ¿no? 00:01:25
El 7 apuntaría a... 00:01:26
Claro, entonces, si yo quiero borrar el de posición 1 00:01:28
Me tengo que quedar 00:01:31
En el de posición 0, es decir 00:01:33
En el de posición menos 1 00:01:34
Es decir, mi aus 00:01:36
Este de aquí 00:01:39
Que inicialmente 00:01:40
Lo inicializo a inicio 00:01:42
¿Vale? Mi aux inicialmente va aquí a inicio 00:01:44
Pues lo avanzo 00:01:47
Tantas veces como me indique 00:01:49
Posición menos 1 00:01:54
Para quedarme apuntando 00:01:55
Al anterior al que quiero eliminar 00:01:58
¿Vale? Por eso lo avanzo 00:02:00
Tantas veces como posición menos 1 00:02:02
¿Vale? 00:02:04
Imagínate que quiero eliminar el 1 00:02:06
En este caso lo avanzaría 0 veces 00:02:08
Que sería lo mismo que dejarlo ahí 00:02:10
Pero imagínate que quieres eliminar el 2 00:02:12
entonces lo avanzamos una vez 00:02:15
avanzarlo una vez 00:02:18
pasaría de aquí a aquí 00:02:19
en general 00:02:21
lo vamos a avanzar 00:02:24
las veces necesarias 00:02:26
hasta apuntar a la anterior a eliminar 00:02:29
vale, pues entonces 00:02:31
cuando este bucle ha terminado 00:02:33
ya lo hemos 00:02:34
avanzado hasta el siguiente a eliminar 00:02:37
en este caso, imagínate 00:02:39
que es pues eso 00:02:41
vale, que es el que queremos eliminar 00:02:42
Ahora, aux ya está apuntando aquí, a la anterior. 00:02:46
Ahora ya solo queda el borrado. 00:02:50
¿El borrado cuál es? 00:02:52
El borrado es una sentencia de puenteo en el cual aux.siguiente, que es esta dirección, 00:02:53
a esta dirección le vamos a asignar lo que tenga aux.siguiente.siguiente, que es esta. 00:03:00
Luego, con esta sentencia de aquí, a aux.siguiente le asignas lo que tenga esta. 00:03:08
que es lo mismo que hacer esto 00:03:15
pum 00:03:17
este 00:03:17
se ha descolgado 00:03:20
ha salido de la cadena 00:03:22
es que yo la lógica 00:03:24
es que no entiendo 00:03:26
si me puedo repetir 00:03:28
lo que hace la línea que está en el bot 00:03:30
aux 00:03:33
igual a aux.siguiente 00:03:35
esta aux 00:03:36
inicialmente apunta 1 00:03:37
cuando tú haces aux.siguiente 00:03:40
a la variable aux 00:03:41
le haces 00:03:43
le asignas lo que tenga esta 00:03:44
o lo que es lo mismo, a la variable aux 00:03:47
haces que apunte a la de abajo 00:03:49
le haces avanzar para apuntar 00:03:51
al siguiente nodo 00:03:53
esta es la de avance 00:03:54
si aux apunta aquí y tú haces 00:03:57
aux igual a aux.siguiente 00:03:59
a aux le asignas 00:04:02
la dirección esta 00:04:04
porque aux.siguiente 00:04:06
es esto 00:04:08
¿vale? 00:04:08
es decir 00:04:11
si esta es nuestra 00:04:11
lista, esto es el siguiente 00:04:17
esto es el siguiente 00:04:20
y esto es el siguiente 00:04:23
y tenemos aux 00:04:25
por ejemplo ahí 00:04:27
entonces aux.siguiente 00:04:29
¿quién es? 00:04:32
aux.siguiente es esta dirección 00:04:33
es esta 00:04:36
porque aux lleva aquí 00:04:36
luego aux.siguiente es esta 00:04:38
Luego, si a AUX le asignas lo que tiene AUX.siguiente, a AUX le haces apuntar a donde apunta este. 00:04:40
Entonces, AUX a esta donde apunta su siguiente. 00:04:52
Luego, AUX deja de apuntar aquí y empieza a apuntar al mismo sitio donde apunta su siguiente. 00:04:56
es decir, sobre escribes 00:05:02
el valor antiguo de aux 00:05:05
y le das 00:05:06
el valor que tiene su siguiente 00:05:08
que es esta dirección 00:05:11
luego aux automáticamente empieza a apuntar 00:05:12
en paralelo a este otro 00:05:14
en paralelo 00:05:15
lo que viene a ser avanza de este nodo al siguiente 00:05:17
¿porque aux es como separa el inicio? 00:05:20
inicialmente está al inicio 00:05:23
inicialmente sí 00:05:24
y cada vez que haces aux.siguiente salta 00:05:25
que ahora volvemos a hacer dentro de este 00:05:28
bucle for esta siguiente sentencia 00:05:30
pues aux 00:05:33
te apuntaba aquí, aux.siguiente 00:05:34
te apunta aquí 00:05:37
luego al asignar a aux 00:05:38
al asignarle a aux.siguiente 00:05:41
pues aux ya 00:05:43
empieza a apuntar aquí 00:05:44
en paralelo a donde apuntase 00:05:46
otro, ¿vale? entonces con 00:05:49
esta sentencia y un bucle 00:05:51
vas avanzando aux para jugar a hacer lo que 00:05:52
sea, a apuentear 00:05:55
añadir a lo que sea, ¿vale? 00:05:56
esto luego pensado más en la intimidad 00:05:58
lo verás más claro 00:06:01
que con este mogollón aquí 00:06:03
¿vale? 00:06:05
vale 00:06:10
vale 00:06:10
y añadir, usamos la misma 00:06:18
filosofía, aquí añadir hay que hacer 00:06:20
un nodo nuevo, pues aquí 00:06:22
está el nodo nuevo construido, el nodo nuevo 00:06:24
pero como que si el 00:06:26
si el 00:06:32
claro, a ver 00:06:34
yo aquí no estoy validando efectivamente los casos 00:06:38
extremos. Aquí 00:06:40
esto ahora se va a una 00:06:42
batería de test 00:06:44
y en una batería de test uno desarrolla 00:06:45
casos de prueba mediante, hace pruebas 00:06:48
de caja negra, caja blanca, un montón de cosas de esas. 00:06:50
¿Habéis visto las pruebas en... 00:06:52
en todos los dos años? Vale. 00:06:54
Y aquí lo primero 00:06:56
que haría el 00:06:58
tester, pues es 00:07:00
probar los casos límite, que es 00:07:02
los casos raros. 00:07:04
Cuando yo quiero eliminar el primero de todos. 00:07:06
Porque en los casos raros 00:07:08
Puede que haya que contemplar cosas 00:07:10
Entonces yo aquí lo he puesto sin contemplar casos raros 00:07:12
Entonces 00:07:15
Para el primero y para el último 00:07:16
Que son los casos raros 00:07:18
Igual no funciona porque son especiales 00:07:19
¿Vale? 00:07:22
Entonces habría que distinguirlos 00:07:23
Si posición coincide con 6 menos 1 00:07:25
Es que estás queriendo eliminar el último 00:07:28
Entonces pues a lo mejor 00:07:30
El caso general no te funciona 00:07:32
Habría que comprobarlo 00:07:34
Pero bueno, eso ya lo podéis quedar vosotros 00:07:35
vale 00:07:38
¿eh? 00:07:39
sí, porque se llama size 00:07:44
lo llamo yo size al SM 00:07:45
¿por qué? 00:07:48
porque se llama así en las colecciones 00:07:51
entonces para 00:07:53
que nos empiece a sonar 00:07:54
vale 00:07:56
añadir, pues añadir 00:07:59
me hago mi nodo nuevo 00:08:05
mi nodo nuevo con el dato 00:08:06
y ahora 00:08:09
me tengo que colocar en el último 00:08:11
para al último 00:08:13
que su siguiente empiece a apuntar 00:08:15
a nodo, eso es lo que tengo 00:08:17
que hacer, colocarme en el último 00:08:19
para que el siguiente al último sea el nuevo 00:08:20
eso será añadir al final 00:08:23
¿vale? ¿cómo 00:08:24
hago para colocarme en el último? 00:08:27
pues mi aux que empieza con inicio 00:08:29
lo voy avanzando 00:08:31
hasta llegar a un aux 00:08:32
en el cual su siguiente 00:08:35
sea nulo, no que el mismo 00:08:37
sea nulo, sino su siguiente 00:08:39
entonces con este bucle while 00:08:40
yo avanzo hasta que aux apunta al último 00:08:42
no al null final, al último 00:08:45
cuando ya aux apunta al último le digo 00:08:47
oye tú aux.siguiente 00:08:50
deja de ser null como eras antes 00:08:52
deja de ser null y empieza a ser null 00:08:54
y ya está, ya lo he metido al final 00:08:56
entonces si hacéis las pruebitas de esto 00:08:59
pues yo lo he probado 00:09:04
y funciona 00:09:05
¿vale? efectivamente en los casos límite 00:09:06
por ejemplo no 00:09:11
porque yo he probado aquí a borrar 00:09:13
la que está entre medias 00:09:15
¿vale? entonces 00:09:16
vamos a ponerlo aquí para que 00:09:20
haya un mail muy sucio 00:09:24
vamos a poner 00:09:26
prueba 00:09:28
remove 00:09:32
para dejarla aquí 00:09:34
aparte, entonces prueba 00:09:36
remove, vamos a hacernos un 00:09:38
un linked list con unas 00:09:40
cuantas cosas y voy a intentar borrar el primero 00:09:42
y el último, a ver si en esos casos límites 00:09:44
me pasa la prueba y si no 00:09:46
la tendré que hacer aparte 00:09:48
venga, pues aquí 00:09:49
cadenas.ad 00:09:54
pues cadenas.ad 00:10:05
bla bla 00:10:08
vale, vamos a comprobar 00:10:10
que estén todas añadidas 00:10:12
con este de aquí 00:10:13
vale, voy a comprobar 00:10:17
en mi main este prueba remove 00:10:25
todo esto que tenía antes 00:10:27
lo voy a dejar comentado para hacer ahora 00:10:29
la prueba del remove 00:10:31
solamente 00:10:32
todo esto se queda aquí comentado 00:10:33
y ahora voy a hacer mi prueba 00:10:39
remove 00:10:41
jolín 00:10:43
mi prueba remove 00:10:48
venga, en medio milisegundo 00:10:50
en un tercio de nanosegundo 00:10:53
¿por qué está rojo? 00:10:56
se ha pasado 00:10:59
el nanosegundo 00:10:59
pero bueno, vamos a otro nanosegundo 00:11:00
porque no le he puesto el static al método 00:11:02
entonces como voy a llamar un método 00:11:08
static desde otro que es static también 00:11:10
vale 00:11:11
bueno han sido 7 nanosegundos 00:11:13
así que eso 00:11:15
vale 00:11:17
venga voy a 00:11:18
verificar primero que se han metido las 00:11:21
4 cadenas y ahora ya hago la prueba del remove 00:11:24
voy a ver si se han metido 00:11:26
las 4 cadenas 00:11:27
ahí tengo las 4 00:11:29
vale 00:11:32
Y ahora voy a hacer una prueba de remove, pero en caso extremo, porque yo ya he probado antes y creéis que si borro una entre medias funciona. 00:11:34
Venga, pues vamos ahora a borrar cadenas.remove, la última, que la última sería cadenas.size-1. 00:11:43
esta sería la última 00:11:58
y ahora 00:11:59
voy a volver aquí a recorrer 00:12:06
a ver si me ha borrado la última 00:12:08
efectivamente 00:12:10
pues sí, en el caso límite de la última 00:12:11
me la ha borrado 00:12:20
vamos a probar caso límite la primera 00:12:22
vamos a borrar la primera 00:12:24
otro caso límite 00:12:27
¿por qué no va a funcionar? 00:12:28
ahora revisamos el código 00:12:33
¿por qué no va a 00:12:34
borrar la última al puentear? 00:12:37
Tú, el penúltimo, le haces apuntar a nul, que es lo que lleva el último. 00:12:39
No hay ninguna razón para que no funcione. 00:12:43
Ahora lo revisamos y eso. 00:12:46
Vamos a ver el primero. 00:12:47
Cadenas de cero. 00:12:50
Vamos a probar eso, casos límite, que siempre había que hacer. 00:12:52
Ya la he borrado. 00:12:55
Vamos a ver si no funciona. 00:12:56
Vale. 00:13:05
Otra diosola, otra diosola. 00:13:09
Es que ya he perdido la cuenta porque con tanto sistema lo voy a borrar. 00:13:11
Esto fuera 00:13:19
Vale, voy a volverlo a ejecutar 00:13:23
Otra, hola 00:13:28
Vale 00:13:32
Me ha borrado 00:13:37
La que no es 00:13:41
Vale, vamos a ejecutarlo 00:13:42
Antes del remove y después 00:13:46
Y tiene todo el sentido del mundo 00:13:47
Vale 00:13:50
Otra, adiós, hola, bla, bla 00:13:55
Otra 00:14:03
me está borrando la segunda 00:14:05
o sea, la que está 00:14:08
en la posición 1, en vez de la 0 00:14:10
y si le doy la 1 00:14:12
si le doy la 1 00:14:14
si la doy la 1 00:14:16
también, es decir 00:14:21
le dé la 1 00:14:23
o le dé la 0 00:14:25
me hace lo mismo, ahí ya 00:14:26
el que me está pasando las pruebas me diría 00:14:29
oye 00:14:31
solo he encontrado 00:14:33
un caso en el que tu 00:14:35
programa no pasa las pruebas. 00:14:37
Si le das cualquier 00:14:39
número, te lo hace 00:14:41
bien. Pero si le das el 0 00:14:43
te borra la 1 también. 00:14:45
Te borra la 1. 00:14:47
Pues 00:14:49
ese es el único caso en el que está 00:14:51
fallando. Pues hombre, uno 00:14:53
se iría aquí y diría, como puede ser 00:14:55
que me haga esto. 00:14:57
Pensé 00:15:01
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
1
Fecha:
7 de febrero de 2026 - 18:48
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
15′ 03″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
392.19 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid