Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LISTAS
Tutor: Autores:
Laryenso Gutiérrez García Jasneyka
C.I. 19.405.985
España Silvia
C.I. 18.727.135
LISTAS CIRCULARES
Declaraciones de Tipos para Manejar Listas circulares en C
Operaciones Básicas con Listas circulares
Localizar Elementos en una Lista circulares
Eliminar Elementos en una Lista circulares
LISTA
desventaja es que es
posible no ocupar toda la
memoria disponible,
Este es,
evidentemente,
el caso más
Operaciones sencillo.
Básicas con Partiremos de
que ya tenemos
Listas
Insertar un Elemento en la
el nodo a insertar
y, por supuesto
Primera Posición de una un puntero que
Lista: apunte a él,
además el
Moverse a Través de
una Lista Abierta
Elemento Anterior a
uno Cualquiera:
LISTAS DOBLEMENTE
ENLAZADAS
El nodo típico es el Las listas doblemente
mismo que para enlazadas no necesitan un
construir las listas, nodo especial para acceder a
salvo que tienen ellas, pueden recorrerse en
otro puntero al ambos sentidos a partir de
nodo anterior: cualquier nodo, esto es porque
a partir de cualquier nodo,
siempre es posible alcanzar
cualquier nodo de la lista,
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA
hasta que se llega a uno de los
typedef struct _nodo {
int dato;
El movimiento a través de struct _nodo *siguiente;
listas doblemente enlazadas struct _nodo *anterior;
es más sencillo, y como } tipoNodo;
veremos las operaciones de typedef tipoNodo *pNodo;
búsqueda, inserción y typedef tipoNodo *Lista;
borrado, también tienen
Declaraciones
más ventajas. de
Tipos para tipoNodo, es el
Manejar tipo para
declarar nodos,
evidentemente.
pNodo, es el tipo
para declarar
También es posible, y punteros a un
potencialmente útil, nodo.
crear listas doblemente
enlazadas y circulares. Lista, es el tipo
para declarar
listas abiertas
doblemente
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA
Operaciones Básicas con Listas Doblemente
Enlazadas
AñADIR ELEMENTO EN
UNA LISTA DOBLEMENTE
ENLAZADA VACíA:
Partiremos de que ya
tenemos el nodo a
insertar y, por supuesto
un puntero que apunte a
él, además el puntero
INSERTAR UN ELEMENTO EN que define la lista, que
LA PRIMERA POSICIóN DE
LA LISTA
lista apunta a
nodo.
lista->siguiente y
lista->anterior
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA
apunten a null.
O El proceso es el
P siguiente:
E nodo->siguiente
R debe apuntar a
A Lista.
C nodo->anterior
apuntará a Lista-
I
>anterior.
O Lista->anterior debe
N nodo->siguiente debe
E apuntar a Lista-
S >siguiente (NULL).
Lista->siguiente debe
B apuntar a nodo. INSERTAR UN ELEMENTO EN LA
Á nodo->anterior ÚLTIMA POSICIóN DE LA LISTA
apuntará a Lista.
S
I
Igual que en el caso
C anterior, partiremos de
A una lista no vacía, y de
s nuevo para simplificar,
que Lista está apuntando
al último
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA elemento de la
Pero parece que la
aplicación más sencilla de
listas doblemente
En muchos aspectos, una
enlazadas es hacer arrays
lista doblemente
dinámicos ordenados,
enlazada se comporta
donde buscar un elemento
como dos listas abiertas
concreto a partir de que comparten los datos.
cualquier otro es más
Buscar o Localizar un
Elemento de una Lista
Doblemente Enlazada
Por supuesto, se
pueden hacer listas
doblemente enlazadas Tenemos la ventaja de
no ordenadas, existen que podemos avanzar
cientos de problemas y retroceder desde
que pueden requerir de cualquier nodo, sin
necesidad de volver a
uno de los extremos
Partiremos de que ya
tenemos el nodo a insertar
y, por supuesto un puntero
que apunte a él, además el
Añadir Elemento en una Lista puntero que define la lista,
Circular No Vacía que valdrá NULL:
El proceso es muy
simple, bastará con
que:
lista apunta a nodo.
lista->siguiente
apunte a nodo.
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA
OPERACIONES
BáSICAS CON LISTAS
CIRCULARES BUSCAR O LOCALIZAR UN
ELEMENTO DE UNA LISTA
CIRCULAR
Esto elimina la
excepción del segundo Para ésta operación podemos
caso, ya que lista encontrar tres casos diferentes:
nunca será el nodo a Eliminar un nodo cualquiera,
eliminar, salvo que sea que no sea el apuntado por
el único nodo de la lista.
Eliminar el nodo apuntado por
lista, y que no sea el único
nodo.
En el primer caso necesitamos Eliminar el único nodo de la
localizar el nodo anterior al que
queremos borrar. Como el
principio de la lista puede ser
cualquier nodo, haremos que sea
precisamente lista quien apunte
al nodo anterior al que queremos
AUTORAS: JASNEYKA GARCIA ESPAÑA SILVIA
Gracias por su
atención
Gracias por su
Graciasatención
por su atención
Gracias por su atención
Gracias por su atención