20260203 Colecciones_6_enlazada - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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