Sei sulla pagina 1di 5

 

Universidad de San Carlos de Guatemala 


Facultad de Ingeniería 
Escuela de Ciencias y Sistemas 
Estructura de Datos Sección A 
Catedrático: Ing. Jesús Guzmán 
Auxiliar: Ricardo Antonio Cutz Hernández 
 

Laboratorio: Clase 2 
APUNTES DE CLASE 

Listas 

Operaciones más Comunes 


● EstaVacia:  Es  una  operación  que  se  utiliza  para  comprobar si la estructura de la lista está 
vacía o ya contiene elementos en la misma. 
● InsertarFinal:  Este  método  permite  insertar  un nuevo elemento al final de la estructura, es 
como la operación de inserción en una cola. 
● InsertarInicio:  Este método permite insertar un nuevo elemento al inicio de la estructura, e 
como la operación de inserción en una pila. 
● InsertarEn:  Este  método  permite  insertar  un  nuevo  elemento  en  alguna  posición 
específica 
● Eliminar: Permite eliminar un elemento en alguna posición específica 

Lista Enlazada Simple 


La  lista  enlazada  simple  es  una  de  las  estructura  de  datos  lineales  la  cual  está  compuesta  por 
nodos  que  contienen  el  dato  u  objeto a almacenar y un puntero al siguiente elemento en la lista, 
es  decir  que  su  nodo  cuenta  con  atributos:  ​objeto  ​y  ​siguiente.  ​Esta  estructura  de  datos  es 
dinámica y crece conforme se van agregando datos a la misma.  

 
 
 

Lista Enlazada Simple Circular 


Una  lista  enlazada  simple  circular,  a  diferencia  de  una  lista  enlazada  simple,  el  último  elemento 
debe  de  apuntar al primer elemento de la lista. El nodo que compone cada elemento de una lista 
circular  simple  tiene  los  atributos:  ​objeto  ​(Dato  almacenado  en  nodo)  y  ​siguiente  ​(el  cual  es  un 
puntero  al  siguiente  elemento  de  la lista). Esta estructura de datos es dinámica y crece conforme 
los datos se van agregando a la misma. 

Implementación de Listas Simples 


Clase Nodo: Lista Simple Circular y No Circular 

La  clase  nodo  de  la  una  lista  simple  circular  o  no  circular  tiene  los  mismos  atributos:  ​dato  y 
siguiente 

Clase Lista Simple Circular y No Circular 

Para  ambas  listas  colocamos  los  mismos  atributos,  la  diferencia  será  en  la  forma  en  que  los 
punteros serán manejados en la inserción y eliminación. 

 
 
 

Método EstaVacia: Lista Simple Circular y No Circular: 

El  método  es  bastante  sencillo ya que solo comprueba si ya se ha realizado alguna inserción a la 


estructura. 

Método Insertar Final: Lista Simple No Circular 

El  método  para  insertar  al  final  de  la  lista  simple  no  circular  es  prácticamente la implementación 
del  método  encolar  (ver  documento:  [EDD]Clase1_Apuntes)  donde  se  utiliza  el  puntero  ​último 
para lograr insertar el nuevo elemento. 

Método Insertar Inicio: Lista Simple No Circular 

El  método  para  insertar  al  inicio  de la lista simple no circular es prácticamente la implementación 


del  método  push  (ver  documento:  [EDD]Clase1_Apuntes)  donde  utilizamos  el  puntero  ​primero 
para insertar el nuevo elemento antes que este. 

 
 
 

Método Insertar Inicio: Lista Simple Circular 

El  método  para  insertar  al  inicio  en una lista simple circular es parecido el de una lista no circular 


con  la  diferencia  que no hay que olvidar siempre apuntar el puntero ​siguiente ​del nodo ​ultimo ​al 
primer elemento de la lista, para que así se complete la propiedad de circular de la lista. 

Método Insertar Final: Lista Simple Circular 

El  método  para  insertar  un  elemento  al  inicio  de  una  lista  circular  simple  tiene  que  realizarse 
conectando  el  puntero  ​último  ​con  el  puntero  ​primero  ​para  completar  la  estructura  y  que  esta 
sea  circular,  es  decir  que al llegar al último elemento de la lista pueda volver al inicio mediante el 
puntero ​siguiente ​ del puntero ​último. 

EJERCICIO: 

Implementar los métodos de eliminar e insertar de la lista simple r y la lista simple circular.  

Método  Descripción 

eliminar(index)  Elimina un elemento de acuerdo al índice 


 
 

InsertarEn(Index, Dato)  Inserta un elemento en el índice de la lista 


especificado. 

Lista Doblemente Enlazada 


Una  lista  doblemente  enlazada  es  aquella  que  está  compuesta  por  nodos  que  tienen  punteros 
siguiente  ​y  ​anterior​,  es  decir  que  me  puedo  desplazar  en  ambas  direcciones  de  la  lista,  de 
adelante hacia atrás y de atrás hacia adelante. 

Implementación 

La  implementación  de  esta  estructura  fue  ejemplo  de  clase  y  el  código  está  disponible  en: 
https://github.com/ricardcutzh/EDD_Ejemplo_Listas/tree/master/ListaDoble 

Lista Doblemente Enlazada Circular 


Una  lista  doblemente  enlazada  circular  es  aquella  que  está  compuesta  por  nodos  que  tienen 
punteros  ​siguiente  ​y  ​anterior​,  a  diferencia  de  la  doblemente  enlazada  el  puntero  ​siguiente  del 
último  elemento  de  la  lista  debe  apuntar  al  primero,  así  como  el  puntero  anterior  del  primer 
elemento  debe  de  apuntar  al  último  elemento  de  la  lista.  Esta  estructura  puede  recorrer  de 
adelante  hacia  atrás  y  de  atrás  hacia  adelante.  Es  importante  tomar  en  cuenta  la  correcta 
implementación  del  método  para  recorrer  la  lista,  que  de  no  hacerse  bien  puede  entrar  en  un 
loop infinito. 

Implementación 

La implementación de esta estructura fue ejemplo de clase y el código está disponible en: 

https://github.com/ricardcutzh/EDD_Ejemplo_Listas/tree/master/ListaCircularDoble 

Potrebbero piacerti anche