13 - Listas Enlazadas (EDDJava)

MasterHeHeGar
4 Oct 201415:21

Summary

TLDREn el videotutorial número 13, el presentador Edgar introduce las estructuras de datos dinámicas, centrando la explicación en las listas enlazadas. Describe cómo estas listas, compuestas de nodos que contienen datos y enlaces a los siguientes, funcionan de manera secuencial y dinámica en la memoria. Contrasta las listas enlazadas con los vectores estáticos, resaltando la flexibilidad de las primeras para agregar y eliminar elementos sin la necesidad de reservar memoria previamente. Explica los componentes básicos de un nodo, incluyendo información y referencias, y menciona las operaciones básicas como la inicialización, inserción, eliminación, búsqueda y recorrido de la lista. Finalmente, clasifica las listas enlazadas en simples, doblemente enlazadas, circulares y circulares doblemente enlazadas, promoviendo la comprensión de estas estructuras antes de profundizar en su creación y manejo en futuras sesiones.

Takeaways

  • 😀 Las listas enlazadas son una colección de datos dispuestos en secuencia, conectados mediante referencias o enlaces.
  • 😄 Cada elemento en una lista enlazada se llama nodo, que contiene un dato y un enlace al siguiente nodo.
  • 😁 La principal ventaja de las listas enlazadas es que permiten agregar o eliminar elementos en tiempo de ejecución, sin necesidad de reservar memoria previamente.
  • 🙂 Una diferencia clave entre listas enlazadas y vectores es que los vectores tienen un tamaño fijo definido en tiempo de diseño, mientras que las listas enlazadas son dinámicas.
  • 😃 Las listas enlazadas permiten insertar elementos en cualquier posición, incluso en medio de la secuencia, a diferencia de los vectores.
  • 😌 Los nodos en las listas enlazadas pueden ser eliminados sin desperdiciar memoria, a diferencia de los vectores que dejan espacios reservados al eliminar elementos.
  • 😅 Una lista enlazada tiene un inicio y un fin, donde el inicio apunta al primer nodo y el fin apunta a nulo cuando no hay más nodos.
  • 🤓 Existen diferentes tipos de listas enlazadas: simplemente enlazadas, doblemente enlazadas, circulares, y circulares doblemente enlazadas.
  • 😉 Las operaciones básicas en listas enlazadas incluyen: inicializar, insertar, eliminar, buscar y recorrer los elementos.
  • 🤔 Una lista vacía tiene su inicio y fin apuntando a nulo, lo que indica que no hay elementos en la lista.

Q & A

  • ¿Qué son las listas enlazadas según el videotutorial?

    -Las listas enlazadas son una colección de datos ordenados en secuencia, donde cada elemento contiene un dato y un enlace o referencia al siguiente elemento.

  • ¿Cuál es la diferencia fundamental entre una lista enlazada y un vector?

    -Las listas enlazadas utilizan memoria dinámica, permitiendo agregar o eliminar elementos en tiempo de ejecución sin necesidad de reservar espacio en tiempo de diseño, mientras que los vectores usan memoria estática y requieren definir su tamaño en tiempo de diseño.

  • ¿Cómo se representa un nodo en una lista enlazada?

    -Un nodo en una lista enlazada se representa por un elemento que contiene dos campos: uno para la información o dato y otro para el enlace o referencia al nodo siguiente.

  • ¿Qué se entiende por 'inicio' y 'fin' en el contexto de las listas enlazadas?

    -El 'inicio' de una lista enlazada es el primer nodo de la lista, mientras que el 'fin' es el último nodo, que apuntará a nulo indicando el final de la lista.

  • ¿Cómo se determina si una lista enlazada está vacía?

    -Una lista enlazada está vacía si tanto el inicio como el fin apuntan a nulo, lo que significa que no hay nodos en la lista.

  • ¿Qué operaciones pueden realizarse en las listas enlazadas según el videotutorial?

    -Las operaciones que pueden realizarse en las listas enlazadas incluyen inicialización, inserción de elementos, eliminación de elementos, búsqueda de elementos y recorrer la lista.

  • ¿Cuál es la ventaja de usar listas enlazadas en lugar de vectores?

    -Las listas enlazadas permiten una gestión más flexible de la memoria, ya que se pueden agregar o eliminar elementos dinámicamente sin la necesidad de definir un tamaño fijo como es el caso de los vectores.

  • ¿Qué es una lista simplemente enlazada y cómo se diferencia de una lista doblemente enlazada?

    -Una lista simplemente enlazada es aquella que tiene un enlace al siguiente nodo, mientras que una lista doblemente enlazada tiene enlaces tanto al siguiente como al anterior nodo, permitiendo navegar en ambas direcciones.

  • ¿Qué es una lista circular enlazada y cómo se diferencia de una lista enlazada normal?

    -Una lista circular enlazada es aquella en la que el último nodo enlaza de vuelta al primer nodo, formando un ciclo, mientras que en una lista enlazada normal el último nodo apunta a nulo.

  • ¿Cómo se puede acceder a los datos de un nodo en una lista enlazada?

    -Se puede acceder a los datos de un nodo en una lista enlazada a través de un puntero al nodo y utilizando la notación de punto para obtener el dato (por ejemplo, 'inicio.dato') o el enlace (por ejemplo, 'inicio.siguiente').

Outlines

00:00

🔗 Introducción a las Listas Enlazadas

Este primer párrafo presenta el concepto de las listas enlazadas como una estructura de datos dinámica. Se explica que una lista enlazada es una secuencia de datos ordenados, donde cada elemento contiene un dato y un enlace al siguiente elemento. Se ilustra con ejemplos de la vida real, como niños de kinder tomando de las manos, para entender cómo se conectan entre sí. Además, se menciona la diferencia entre las listas enlazadas y los vectores, resaltando que las listas enlazadas permiten una gestión dinámica de la memoria, en contraste con los vectores que requieren de una memoria estática definida en el diseño del programa.

05:00

🔄 Ventajas de las Listas Enlazadas y Teoría

En este segundo párrafo, se profundiza en las ventajas de las listas enlazadas sobre los vectores estáticos, destacando la capacidad de modificarse dinámicamente, lo que permite agregar o eliminar elementos en cualquier momento sin la necesidad de redefinir el tamaño de la estructura. Se ejemplifica con la historia de una señora que semete en una fila, alterando la secuencia pero sin afectar la capacidad de la lista para adaptarse a cambios. También se discuten las desventajas de los vectores estáticos, como la reserva de memoria fija que puede resultar en una desperdicio de recursos.

10:01

📚 Componentes y Operaciones de las Listas Enlazadas

El tercer párrafo describe los componentes fundamentales de una lista enlazada, que son los nodos, y explica que cada nodo consta de dos campos: uno para la información y otro para la referencia al nodo siguiente. Se introducen las operaciones básicas que se pueden realizar con las listas enlazadas, como la inicialización, inserción, eliminación, búsqueda y recorrido de la lista. Se enfatiza la importancia de comprobar si la lista está vacía antes de realizar cualquier operación, ya que esto afecta directamente la forma en que se manejan los nodos y se accede a los datos.

15:02

🔁 Clasificación de las Listas Enlazadas

Este párrafo finaliza el tutorial introductorio explicando las diferentes clases de listas enlazadas: simplemente enlazadas, doblemente enlazadas, circulares y circulares doblemente enlazadas. Se describe brevemente la característica distintiva de cada tipo: las listas simplemente enlazadas tienen un enlace al siguiente nodo, las doblemente enlazadas tienen enlaces a los nodos anterior y siguiente, las circulares simplemente enlazadas enlazan el último nodo con el primero, y las circulares doblemente enlazadas enlazan tanto el último como el primer nodo entre sí. Se sugiere que en futuras lecciones se profundizará en la creación y manejo de estas estructuras.

📢 Conclusión del Videotutorial

El vídeo tutorial número 13 concluye con un llamado a la suscripción y un recordatorio de que el conocimiento nace de la visión, invitando a los espectadores a seguir aprendiendo en próximos videos. Se cierra el capítulo dedicado a las listas enlazadas con una promesa de explorar en detalle su creación y uso en futuras sesiones.

Mindmap

Keywords

💡Listas enlazadas

Listas enlazadas son una estructura de datos dinámica que consiste en una colección de nodos, donde cada nodo contiene un dato y una referencia al siguiente nodo en la secuencia. En el vídeo, se explica que una lista enlazada es una forma sencilla y flexible de almacenar datos, permitiendo la adición y eliminación de elementos en cualquier momento sin la necesidad de reservar espacio en memoria estático. Esto se contrasta con estructuras como los vectores, que requieren de un tamaño fijo definido en el momento de la compilación del programa.

💡Nodo

Un nodo es el elemento principal de una lista enlazada, compuesto por dos campos: el dato y la referencia al siguiente nodo. En el vídeo, se menciona que cada nodo contiene un dato, que puede ser de cualquier tipo, y un enlace o referencia al nodo siguiente, permitiendo así la construcción de la secuencia en la lista enlazada.

💡Memoria dinámica

La memoria dinámica se refiere a la capacidad de un programa de reservar espacio en la memoria del sistema en tiempo de ejecución, en lugar de hacerlo en tiempo de compilación. En el contexto del vídeo, las listas enlazadas operan con memoria dinámica, lo que les permite agregar o eliminar elementos en cualquier momento durante la ejecución del programa, a diferencia de las estructuras de memoria estática como los vectores.

💡Inicio y Fin

En las listas enlazadas, el 'Inicio' y el 'Fin' son referencias que señalan el primer y el último nodo de la lista, respectivamente. Estas referencias son importantes para poder navegar y manipular la lista, como agregar nuevos elementos al inicio o al final, o eliminar el último elemento. En el vídeo, se explica que si tanto el inicio como el fin apuntan a 'nulo', la lista está vacía.

💡Vector

Un vector es una estructura de datos estática que almacena una secuencia de elementos del mismo tipo en posiciones contiguas de memoria. A diferencia de las listas enlazadas, los vectores requieren que su tamaño sea definido en tiempo de compilación y no pueden cambiar dinámicamente. En el vídeo, se utiliza el vector como ejemplo de una estructura de memoria estática en contraste con la memoria dinámica de las listas enlazadas.

💡Inserción

La inserción en una lista enlazada implica agregar un nuevo nodo a la secuencia. Esto se puede hacer en cualquier punto de la lista, incluyendo al inicio o al final, o incluso en medio, si se tiene una referencia al nodo antes del cual se desea insertar. En el vídeo, se menciona la inserción como una de las operaciones básicas que se pueden realizar en una lista enlazada, destacando su flexibilidad en comparación con otras estructuras de datos.

💡Eliminación

La eliminación en una lista enlazada se refiere al proceso de borrar un nodo de la secuencia. Esto implica ajustar los enlaces de los nodos adyacentes para que el nodo eliminado no esté más en la lista. El vídeo destaca la facilidad con la que se pueden eliminar elementos en una lista enlazada debido a su estructura dinámica, en comparación con las estructuras de memoria estática.

💡Búsqueda

La búsqueda en una lista enlazada consiste en recorrer la lista y verificar si un elemento específico está presente. Esto se hace a través de la referencia al siguiente nodo hasta encontrar el elemento o hasta llegar al final de la lista. En el vídeo, se menciona la búsqueda como una operación común en las listas enlazadas, necesaria para determinar si un elemento existe antes de proceder con otras operaciones como la eliminación.

💡Recorrido

El recorrido de una lista enlazada es el proceso de visitar cada nodo en la secuencia, generalmente a través de la referencia al siguiente nodo, desde el inicio hasta el fin de la lista. Este concepto es fundamental para la implementación de operaciones en las listas enlazadas, como la impresión de los datos o la realización de búsquedas. En el vídeo, se destaca el recorrido como una operación básica que permite interactuar con los elementos de la lista.

💡Clases de listas enlazadas

El vídeo menciona diferentes clases de listas enlazadas: simplemente enlazadas, doblemente enlazadas, circulares y circulares doblemente enlazadas. Cada clase varía en la forma en que se enlazan los nodos, ofreciendo diferentes capacidades y usos. Por ejemplo, las listas doblemente enlazadas permiten el recorrido en ambas direcciones, mientras que las circulares permiten un recorrido continuo desde el inicio hasta el final y viceversa.

Highlights

Introducción al módulo 3, unidad 3, enfocado en estructuras de datos dinámicas.

Explicación de qué son las listas enlazadas y su importancia en la ingeniería de software.

Las listas enlazadas son una colección de datos ordenados y cómo se relacionan entre sí.

Descripción de un nodo en una lista enlazada y su composición por datos y enlaces.

Representación gráfica de una lista enlazada y su comparación con una fila de niños.

Diferenciación entre memoria dinámica y memoria estática, con ejemplos de listas enlazadas y vectores.

Ventajas de las listas enlazadas sobre los vectores en términos de flexibilidad y memoria.

Cómo se representa el inicio y el fin de una lista enlazada y su significado.

Operaciones básicas que se pueden realizar en las listas enlazadas: inicialización, inserción, eliminación, búsqueda y recorrido.

Importancia de comprobar si una lista enlazada está vacía antes de realizar operaciones.

Representación de los datos y enlaces en los nodos de una lista enlazada.

La estructura básica de un nodo en una lista enlazada y sus componentes: información y referencia.

La diferencia entre listas simplemente enlazadas, doblemente enlazadas, circulares y circulares doblemente enlazadas.

Gráfica de las diferentes clases de listas enlazadas y cómo se enlazan entre sí.

Resumen de las ventajas de las listas enlazadas sobre otros tipos de estructuras de datos.

Anuncio de futuras sesiones para aprender a crear y trabajar con listas enlazadas.

Cierre del videotutorial número 13 y llamado a la suscripción para recibir más contenido.

Transcripts

play00:00

bueno

play00:12

hola que tal bienvenidos al

play00:14

videotutorial número 13 comenzamos al

play00:16

día de hoy el módulo 3 unidad 3 como

play00:18

todo quieras ver y el día de hoy

play00:20

arrancamos con las estructuras de datos

play00:24

dinámicas vamos a arrancar con listas

play00:26

enlazadas qué diantres son las listas en

play00:28

las salas seguramente en algún momento

play00:30

de tu carrera artística como luego lo

play00:33

digo yo de tu carrera profesional

play00:34

seguramente has escuchado hablar de las

play00:36

listas enlazadas en teoría dicen que es

play00:39

el coco de la ingeniería cuando

play00:41

realmente es algo sumamente sencillito

play00:43

después de que le agarras la onda

play00:45

muy bien pues vamos a comenzar resulta

play00:48

que una lista enlazada simplemente es

play00:50

una colección de datos es una secuencia

play00:53

de estos de estos datos lógicamente

play00:55

todos van ordenados uno detrás de otro

play00:57

por eso se dice que van en secuencia

play00:59

dispuestos detrás uno de otro en cada

play01:02

elemento se encuentra un dato en este

play01:05

caso puede ser una colección de datos

play01:08

son sólo un único dato de tipo entero o

play01:10

una colección de datos por ejemplo entre

play01:13

char string 2 según lo que tú quieras

play01:18

y ahora estos estos datos lógicamente

play01:20

están contenidos dentro de un nodo y

play01:23

cada nodo va conectado con uno siguiente

play01:27

a estos a estos es te conectes o esté

play01:32

forma de enlazar un dato con otro se le

play01:36

conocen como enlaces o referencias eso

play01:38

es lo que es una lista enlazada y

play01:40

mostrando todo ya en la imagen una lista

play01:42

enlazada más o menos se ve como tú lo

play01:44

ves aquí esto de aquí pues sería el

play01:47

famosísimo nodo cada elemento se conoce

play01:51

como nodo y cada este cada nodo contiene

play01:55

un dato y un enlace más adelante esto lo

play01:59

vamos a ver pero así es como se ve una

play02:01

lista enlazada yo regularmente lo

play02:03

represento por ejemplo con una en una

play02:05

fila por ejemplo digámoslo así por

play02:06

ejemplo en el kinder regularmente los

play02:09

niños los le dicen tómense de las manos

play02:11

o los forman etcétera y eso se es la

play02:13

representación a imagen menos que de una

play02:15

lista enlazada cuando están enlazados

play02:17

por ejemplo en este caso cuando el niño

play02:19

que se encuentra en la parte inicial es

play02:21

decir en el inicio

play02:23

de la lista este no está sujeto a nada

play02:26

ese es el inicio de la lista pero

play02:28

seguramente el que viene detrás de él

play02:30

está sujeto a él mediante un enlace en

play02:32

este caso que pues es su mano y después

play02:35

pues es obvio tiene a otra por ejemplo

play02:38

en este caso a una anilla a una niña

play02:39

enlazada al niño que estaba

play02:42

anteriormente al final y esto

play02:44

regularmente se conoce como que esto es

play02:46

el inicio y es obvio que si ese es el

play02:50

inicio pues tiene un fin y aquí lo

play02:52

tenemos y seguramente cuando ya no hay

play02:55

otra cosa que eso regularmente se conoce

play02:57

que no hay nada ya hay cero cosas está

play03:01

hacia el lingüista y son regularmente se

play03:03

le conoce como nulo es decir después de

play03:06

que ya no hay nada en la lista eso es no

play03:09

hay nada no hay absolutamente nada se

play03:12

conoce como nulo ahora vámonos para acá

play03:14

como como podemos darnos cuenta de la

play03:17

enorme diferencia de una lista enlazada

play03:19

por ejemplo con un vector realmente

play03:23

estamos acostumbrados a trabajar con

play03:24

vectores para almacenar colecciones de

play03:25

datos por ejemplo una lista enlazada ya

play03:28

te lo he mostrado cómo estaba

play03:29

trabaja con memoria dinámica es decir al

play03:32

trabajar con memoria del momento

play03:33

dinámica tú decides en qué momento

play03:35

eliminas o en qué momento agregas más

play03:39

elementos a esa lista y no hay necesidad

play03:41

de estar reservando memoria en tiempo de

play03:44

diseño es decir a la a la hora en que tú

play03:46

estás programando y un vector un simple

play03:49

lector regularmente por ejemplo este que

play03:51

está aquí este vector tiene un tamaño 3

play03:53

y lo tienes que definir en tiempo de

play03:56

diseño es decir al momento en que tu

play03:58

programador lo estás haciendo y qué

play04:00

desventaja tiene que ofrecer mejor ya

play04:02

estática porque por la sencilla razón de

play04:04

que supongamos que te hicieras 5

play04:06

elementos pues tendrías que dejar de

play04:08

ejecutar tu aplicación para regresar te

play04:10

al al código fuente y cambiarle el

play04:13

tamaño de 3 a 5 y eso como que se vuelve

play04:16

algo como que tedioso no y en la parte

play04:18

de acá de la memoria dinámica

play04:19

simplemente en el momento en que a ti se

play04:21

te antoje agregar un nuevo nuevo pues lo

play04:24

agregas por ejemplo supongamos que lo

play04:26

agregue esta al final y este no lo que

play04:28

anteriormente apuntaba a nulo ahora va a

play04:32

apuntar a este de aquí y aquí por

play04:34

ejemplo vamos a poner un 6 y este que ya

play04:36

va a ser él

play04:37

este es el tema punto ahora otra cosa

play04:40

también que puede ser es que

play04:41

regularmente puedes insertar en donde a

play04:43

ti se te antoje es decir muchas

play04:45

ocasiones las listas por ejemplo las

play04:46

filas de niños regularmente están

play04:49

conforme van llegando o no pero

play04:51

regularmente por ejemplo en una cola de

play04:52

tortillas una fila de tortillas llega a

play04:55

una señora de aquellas que son pero

play04:57

bastante sociables por no decir que

play05:00

chismosa si se meten a la fila porque se

play05:02

encuentra la comadre es decir se

play05:05

encontraron a la comadre y la comadre es

play05:06

la número cinco y dijo dame chance no me

play05:08

meto perfecto pues ésta de aquí cómo

play05:10

llegó la la comadre chismosa que es esta

play05:13

que está aquí dice sabes que la mecha se

play05:15

me voy a meter aquí y resulta que éste

play05:18

se enlaza para acá y éste se enlaza para

play05:21

acá y lógicamente este este enlace de

play05:24

aquí se pierde porque por la por la

play05:27

señora chismosa que llegó a meterse a la

play05:28

fila regularmente son cosas que vamos a

play05:31

ir viendo más adelante esto simplemente

play05:32

es teoría para que tú puedas darte

play05:34

cuenta de la diferencia que puede

play05:35

existir entre memoria estática y memoria

play05:37

dinámica por ejemplo en este caso de

play05:39

aquí si tú quisieras por ejemplo

play05:41

eliminar al 5 poesía efectivamente

play05:44

ya no lo tienes se borra de tu vector

play05:47

pero resulta que al momento de

play05:51

eliminarlo todavía tienes un lugar

play05:54

reservado en la memoria que lo tienes

play05:56

ahora sí y sin uso y eso resulta una

play05:59

enorme desventaja y supongamos que

play06:01

quisieras poner en esta parte de aquí el

play06:03

550 pues al poner al 550 el 55 se va se

play06:07

va se esfuma y como dijo su amigo que se

play06:09

va se va y resulta que ya no regresa

play06:12

entonces enormes desventajas simplemente

play06:14

estoy poniendo una comparación entre lo

play06:16

que es una lista enlazada y un simple

play06:18

vector memoria estática de memoria

play06:19

dinámica vámonos algo que si la

play06:22

estructura básica de una lista enlazada

play06:24

es la siguiente el elemento principal es

play06:27

el nodo ya todo había comentado

play06:28

anteriormente el elemento principal es

play06:31

el nombre ahora este nodo se compone de

play06:33

dos campos cuáles son esos dos campos el

play06:36

primero la información regularmente

play06:38

cuando trabajas con estructuras de datos

play06:40

los libros dicen que la información se

play06:42

determina como dato o info o información

play06:45

como tú le quieras poner finalmente eso

play06:47

es cuestión del desarrollador

play06:49

y el otro este componente pues es la

play06:51

referencia conocido en el argot de los

play06:55

libros como enlace o siguiente si tú

play06:58

solo lo ves como tal esto que ves aquí

play07:01

es un nodo y si te das cuenta dice que

play07:04

el elemento principal de una lista

play07:06

enlazada es el nodo es esto que está

play07:08

aquí en esta parte de aquí es en donde

play07:09

se va a guardar el dato que es la

play07:11

primera el primer componente y en esta

play07:14

parte de aquí es el enlace enlace o

play07:16

siguiente que viene siendo la referencia

play07:18

ahora sí eso ya lo vemos como una lista

play07:20

enlazada si te das cuenta esto que tú

play07:23

ves aquí el número dos este es el dato y

play07:27

esto que ves aquí es el enlace o

play07:29

siguiente regularmente se le acostumbra

play07:31

a ponerle el siguiente porque eso quiere

play07:33

decir que el siguiente se enlaza con el

play07:37

siguiente por eso es que regularmente se

play07:39

le llama siguiente

play07:41

es obvio que cada nodo va a tener su

play07:44

dato y su respectivo enlace lo siguiente

play07:47

como tú lo quieres ver y lógicamente

play07:50

pues todo va a tener un inicio y todo va

play07:54

a tener un fin cuando regularmente

play07:56

inicio y fin vamos a suponer que inicio

play07:59

estuviera apuntando a nada es decir al

play08:02

nudo y fin también estuviera apuntando a

play08:06

nada es decir a nulo pues es obvio que

play08:08

no hay nada no tenemos absolutamente

play08:10

nada no hay nodos como tal quiere decir

play08:12

que la lista está vacía ya cosas que

play08:14

viviremos viviendo más adelante pues

play08:16

vamos para acá que operaciones se pueden

play08:19

realizar en las listas enlazadas estas

play08:22

son las diferentes operaciones lo

play08:23

primero que debes de hacer es la

play08:25

inicialización o la creación de tu lista

play08:27

y lógicamente después de que ya tienes

play08:30

inicializar oa crear tu lista pues hay

play08:31

que insertar le elementos a dicha lista

play08:34

para que no esté vacía también lo que

play08:37

puedes hacer es eliminar elementos de

play08:38

esa lista después de que ya tienes

play08:40

insertados pues los puedes eliminar esto

play08:42

es muy útil del momento

play08:43

por ejemplo de simular procesos en

play08:46

realidad es lo que hace un sistema

play08:47

operativo

play08:48

en cuanto está ejecutando procesos y los

play08:50

terminado que es es insertarlos y en

play08:53

cuanto a los terminados eliminan que

play08:55

otra cosa puedes hacer es buscar

play08:56

elementos en la lista es decir si ya

play08:58

tienes algún elemento puede buscarlo

play08:59

para ver si efectivamente cuentas con él

play09:02

para poder posteriormente por ejemplo

play09:04

eliminarlo y otra cosa que puedes hacer

play09:07

otra operación es recorrer la lista

play09:09

enlazada para que simplemente por

play09:11

ejemplo para buscar o para mostrar los

play09:13

datos de dicha lista hay algo que nunca

play09:16

debes de pasar por desapercibido es

play09:19

comprobar si la lista está vacía para

play09:21

que comprueba si la lista está vacía

play09:23

para lo que te decía hace un rato si una

play09:25

lista regularmente vamos a verlo como

play09:27

una fila de las tortillas si no hay

play09:29

nadie formado quiere decir que pues no

play09:31

hay a quién despachar le es decir el

play09:33

inicio de la fila y el fin de la fila

play09:36

están en vacío están en el limbo no hay

play09:38

absolutamente nada

play09:40

a quien despachar en este caso por

play09:42

ejemplo en las listas enlazadas si el

play09:44

inicio y el final apuntan a nada a nulo

play09:46

pues es obvio la lista está vacía y no

play09:48

hay nada que recorrer no hay nada que

play09:50

buscar no hay nada que eliminar habría

play09:52

que insertar primero

play09:53

vámonos a lo siguiente una lista en la

play09:56

tarde ya finalmente se ve así

play09:58

así es como la vez esto que ves aquí es

play10:00

el dato y esto que ves aquí es el enlace

play10:03

ahí está y es obvio que una lista como

play10:06

ya lo había dicho debe de tener sus

play10:08

inicios y debe tener su fin y ahora

play10:11

cuando tú accedes vamos a suponer

play10:14

vamos a suponer vamos a borrarle en esta

play10:16

parte de aquí para que nos entendamos

play10:19

voy a borrar esto de aquí ya que si lo

play10:22

logro está vamos a suponer que vas a

play10:25

hacer referencia y que a este este nodo

play10:27

por ejemplo a la hora de que lo creaste

play10:29

a esta parte de aquí le pusiste dato por

play10:32

ejemplo dato así le pusiste ya lo que

play10:36

viene siendo el enlace le pusiste

play10:38

siguiente por özil para ser más cortos

play10:42

por ejemplo lo que hiciste si cuando

play10:44

quieres hacer referencia a los elementos

play10:46

de le vamos a los datos de un nodo

play10:49

simplemente haces de haces de referencia

play10:52

de acuerdo al puntero en este caso por

play10:53

ejemplo tengo un puntero inicio y un

play10:55

puntero fin en este caso si yo pusiera

play10:57

por ejemplo inicio

play11:01

inicio

play11:03

puntito dato

play11:07

esto lo que me devolvería como resultado

play11:11

es el 4.15 y si yo por ejemplo pusiera

play11:16

inicio

play11:18

inicio punto siguiente si en este caso

play11:24

esto lo que me daría devolvería como

play11:26

resultado es el puntero a la siguiente

play11:29

de aquí incluso puede poner inicio punto

play11:32

siguiente punto dato porque volvamos a

play11:35

repetir eso es dato y lo que yo algo que

play11:38

yo estaría haciendo referencia sería a

play11:41

esto de aquí porque le estoy diciendo

play11:42

sabes que del inicio pero de su enlace

play11:44

siguiente sácame lo que tiene datos es

play11:47

decir inicio siguiente dato y así

play11:50

sucesivamente cositas que que iremos

play11:52

viendo en la práctica vamos a lo

play11:55

siguiente la clasificación de las

play11:56

ciencias en la sala se clasifican

play11:58

prácticamente en cuatro que iremos

play12:00

viendo lógicamente conforme avance el

play12:02

curso las primeras pues son las listas

play12:05

simplemente enlazadas que son las que ya

play12:07

te mostré

play12:08

la segunda son las listas doblemente

play12:11

enlazadas como sabéis la lista

play12:13

simplemente en la sala simple tienen un

play12:15

simple este enlace es decir al siguiente

play12:18

nodo y las listas doblemente enlazadas

play12:21

tienen dos enlaces al siguiente nodo y

play12:23

al anterior nuevo las listas de

play12:26

circulares simplemente enlazadas esas

play12:29

tienen sus lógicamente su respectivo

play12:31

enlace de siguiente y cuando llegue al

play12:33

final en la última el último nodo se

play12:35

enlaza con el primero de manera tal que

play12:37

las puedes las puedes ir recorriendo por

play12:40

ejemplo de inicio a fin y cuando llegue

play12:42

a fin vuelve a iniciar y por último la

play12:45

lista es circular doblemente enlazada

play12:46

que lo que hace es al final lo enlaza

play12:50

con el inicio y al inicio enlaza con el

play12:52

final de tal manera que no pues la puede

play12:54

esa lista doblemente enlazada circular

play12:56

la puedes recorrer de forma ahora si

play13:00

recorriendo hasta adelante y hacia atrás

play13:01

y ahora te lo voy a mostrar gráficamente

play13:03

las listas simplemente enlazadas están

play13:05

así lo único que contienen es un enlace

play13:08

con el siguiente las listas doblemente

play13:11

enlazadas éstas contienen dos es decir

play13:13

con el siguiente aquí

play13:15

tenemos que estar flechita y con el

play13:17

anterior para poder saber están

play13:20

doblemente enlazadas el nodo de aquí

play13:22

está enlazado mediante un enlace

play13:24

siguiente y él no duda que tiene un

play13:26

enlace anterior de tal manera que el

play13:28

inicio siempre va a estar apuntando con

play13:31

su por ejemplo su su puntero o su enlace

play13:34

al anterior a nulo y el último va a

play13:38

estar con su enlace siguiente a nulo

play13:40

pero con su enlace anterior al anterior

play13:43

nulo al anterior nodo perdón entonces

play13:46

esa es la forma de ver lo que son las

play13:48

listas doblemente enlazadas ahora una

play13:50

lista circular simplemente enlazada está

play13:53

representada más o menos así ya lo había

play13:55

dicho el final que es este de aquí su su

play13:58

enlace su enlace siguiente está enlazado

play14:01

con el primer nodo de tal manera que en

play14:04

cuanto llega al final se vuelve a

play14:06

enlazar con el inicio por eso es que se

play14:08

convierte en circular más o menos así

play14:12

simplemente enlazar ahora a circular

play14:15

doblemente en la sala en teoría es la

play14:17

que está un poquito más complicada

play14:18

porque esa aparte de tener nodos con la

play14:21

siguiente ya anterior también tiene el

play14:25

nodo en el cual enlaza por ejemplo del

play14:27

final con el principio y el principio

play14:30

con el final algo más o menos como esto

play14:32

está así más o menos pero también está

play14:36

así y eso es lo que te permite es

play14:39

recorrer la lista ya sea hacia adelante

play14:42

o hacia atrás y lógicamente poder

play14:45

acceder a los datos del anterior nodo y

play14:47

del siguiente no pues esos en torno a lo

play14:49

que son las listas enlazadas ya veremos

play14:52

en el siguiente vídeo tutorial cómo

play14:53

crear ya una lista vamos a arrancar

play14:56

lógicamente con las simplemente

play14:57

enlazadas y veremos cómo crear un nodo

play15:00

cómo crear una lista y así sucesivamente

play15:02

trabajar con las estructuras dinámicas

play15:04

llamadas listas pues hasta aquí dejamos

play15:06

territorial número 13 que habló máster

play15:09

édgar suscríbete y no sé si no te has

play15:11

suscrito recuerda que en la vista nace

play15:13

el conocimiento y nos vemos en próximos

play15:14

vídeo tutor

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
ProgramaciónEstructuras de DatosListas EnlazadasTutorialDinámicasMemória DinámicaMemória EstáticaProgramación BásicaIngeniería de SoftwareEducación Técnica
Besoin d'un résumé en anglais ?