Вы находитесь на странице: 1из 15

Búsquedas y Listas

enlazadas

Lervin Ureña 2017-0541


Francisco Mora 2017-0397
Junior M. Bier 2017-0117
Pablo Montero 2017-1801
Samuel Mayers 2017-1070
Que son listas enlazadas

Una lista enlazada es una estructura de datos lineal, como los arreglos, aunque a
diferencia de estos, sus elementos se encuentran relacionados (enlazados) por medio
de punteros, mientras que en los arreglos sus elementos se encuentran en espacios
de memoria consecutivos.
Ventajas de listas enlazadas

* Los elementos pueden ser añadidos y removidos desde cualquier parte de la lista.

* No hay necesidad de definir un tamaño inicial.


Desventajas de listas enlazadas

* No hay “acceso aleatorio”, es decir, es imposible acceder a un elemento de la lista


sin primero iterar sobre los demás para llegar a él.

* Asignación de memoria dinámica y punteros son requeridos, los que complica más el
código e incrementa el riesgo de pérdida de memoria.
Operaciones en listas enlazadas

● Insertar
● Eliminar
● Buscar
● Localizar
● Vaciar
Operaciones en listas enlazadas
Insertar
Operaciones en listas enlazadas
Eliminar
Operaciones en listas enlazadas
Buscar

g_print ("\nEntra un valor entero a buscar: ");


scanf ("%d", &value);
g_print ("\n");

/* buscando un elemento en la lista */


list2 = g_list_find (list, GINT_TO_POINTER (value));

if (list2 != NULL) {
index = g_list_index (list, list2->data);
g_print ("\nEl valor %d esta en el nodo %d.\n", list2->data, index);
Tipos de listas enlazadas

Listas enlazadas lineales

Listas enlazada simples: Es una lista enlazada de nodos, donde cada nodo tiene un único campo de
enlace.

Listas doblemente enlazadas: cada nodo de la lista doblemente enlazada contiene dos punteros,
de forma que uno apunta al siguiente nodo y el otro al predecesor.
Tipos de listas enlazadas

Listas enlazadas lineales

● Listas enlazadas simples


Struct node {
Int data;
Struct node *next;
};
● Listas doblemente enlazadas:
Struct node {
Int data;
Struct node *next;
Struct node*prev;
};
Listas enlazadas lineales
Listas enlazadas circulares

- El primer y último nodo están unidos


- No tiene comienzo ni fin.
- Se puede recorrer desde cualquier nodo
hasta llegar a su elemento original.
Búsqueda en listas enlazadas

- Se lleva a cabo de forma secuencial.

- Requiere tiempo, aunque se encuentre ordenada.

- Es ineficiente, ya que hay que recorrer todos los


elementos de la lista.

- El algoritmo es similar a los desarrollados para


recorrer una lista en forma iterativa o recursiva.
Código para búsqueda en lista

node **list_search(node **n, int i) {


while (*n != NULL) {
if ((*n)->data == i) {
return n;
}
n = &(*n)->next;
}
return NULL;
}
Aplicaciones de las listas enlazadas

Las listas enlazadas son usadas como módulos para otras muchas estructuras de datos, tales
como pilas, colas y sus variaciones.

A veces, las listas enlazadas son usadas para implementar vectores asociativos, y estas en el
contexto de las llamadas listas asociativas.

Dos de las aplicaciones más conocidas de listas son las siguientes:


• Representación de polinomios.
• Resolución de colisiones (hash).

Вам также может понравиться