Anda di halaman 1dari 13

LISTAS

En Ciencias de la Computación, una lista es


una de las estructuras de datos fundamentales, y
puede ser usada para implementar otras estructuras
de datos. Consiste en una secuencia de nodos, en los
que se guardan campos de datos arbitrarios y una o
dos referencias (punteros) al nodo anterior y/o
posterior.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Los nodos de una lista enlazada no ocupan posiciones contiguas
en memoria.
EL tamaño de la estructura puede aumentar y disminuir durante
la ejecución del programa.
Si la lista está vacía, comienzo es NULL.
La lista se considera llena cuando no existe espacio disponible
para crear una variable dinámica de tipo nodo.
No todos los lenguajes de programación permiten la
implementación de las listas enlazadas dinámicas.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Independientemente del tipo de lista que estamos utilizando,
tendría una serie de funciones que hay que realizar sobre la
misma:
Crear un nodo (reservar memoria y guardar información).
Insertar un nodo (enlazarlo).
Borrar un nodo (quitar enlaces y liberar memoria).
Recorrer la lista.
Buscar un elemento en la lista.
Para cada tipo de lista hay que realizar cada una de estas
funciones

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


ESTRUCTURA DE
LISTAS

• Una estructura de datos Lista es una secuencia conectada de nodos, cada uno de los
cuales contiene algún dato.
• Hay un nodo al comienzo llamado la cabeza o frente (head o front).
• Hay un nodo de término llamado la cola o atrás (tail o back).
• Una Lista sólo puede ser recorrida en secuencia, usualmente hacia atrás o adelante.
• Hay varias formas de implementar una lista, como se muestra a continuación.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Una Lista enlazada es una de las estructuras de
datos fundamentales, y puede ser usada para
implementar otras estructuras de datos. Consiste en una
secuencia de nodos, en los que se guardan campos de
datos arbitrarios y una o dos referencias (punteros) al
nodo anterior y/o posterior.

Una lista enlazada puede representarse de la forma

info sig info sig info sig

comienzo primer nodo segundo nodo último nodo

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN
AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN
Las listas enlazadas son usadas como módulos para
otras muchas estructuras de datos, tales como pilas, colas y sus
variaciones. El campo de datos de un nodo puede ser otra lista
enlazada. Mediante este mecanismo, podemos construir muchas
estructuras de datos enlazadas con listas; esta práctica tiene su
origen en el lenguaje de programación Lisp, donde las listas
enlazadas son una estructura de datos primaria (aunque no la
única), y ahora es una característica común en el estilo de
programación funcional.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Como cualquier estructura de datos, una lista enlazada nos servirá para almacenar datos.
Las operaciones sobre una lista enlazada más importantes son:

Recorrido.
Búsqueda sobre lista enlazada ordenada y sobre lista enlazada desordenada.
Control del espacio disponible en memoria: desbordamiento y subdesbordamiento.
Inserción:
Lista vacía
Por el principio
Por el medio
Por el final
Borrado:
Primer nodo de la lista
Cualquier nodo
Último nodo.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Cuando se construye una lista enlazada, se enfrenta a la elección de si
almacenar los datos de la lista directamente en los nodos enlazados de la lista, llamado
almacenamiento interno, o almacenamiento externo.

El almacenamiento interno tiene la ventaja de hacer accesos a los datos


más eficientes, requiriendo menos almacenamiento global, teniendo mejor referencia
de localidad, y simplifica la gestión de memoria para la lista

El almacenamiento externo, por otro lado, tiene la ventaja de ser más


genérico, en la misma estructura de datos y código máquina puede ser usado para una
lista enlazada, no importa cual sea su tamaño o los datos.

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


Listas en C/C++ con arreglos

una primera implementación de listas usando arreglos, cada elemento del arreglo
debe ser un elemento compuesto. Cada elemento debe contener una parte para la información y
otra parte para apuntar al elemento siguiente:
#include <iostream>
( 1) #define numNodes 500 En el programa anterior, en las líneas
(2) a (5) se crea un nuevo tipo de dato, el tipo
( 2) struct nodeType{ nodo. Cada nodo tiene dos partes, su parte de
( 3) int info; información y su parte de apuntador al siguiente.
( 4) int next; Como solamente tenemos 500 nodos (declarados
( 5) }; en la línea (1), el tipo de datos siguiente es entero
y hemos decidido almacenar números enteros
( 6) struct nodeType node[numNodes]; solamente.
En la línea (6) se ha declarado una
int main (int argc, char * const argv[]) { variable global de tipo arreglo de estructura de
nodos, es decir, se ha creado un arreglo de 500
std::cout << "\EL GRUPO ESTA INTEGRADO POR:!\n"; nodos.
std::cout <<"\NIEVES KARLA!\n";
std::cout <<"\VIERA URIAN!\n";
std::cout <<"\SUAREZ RENY!\n";
std::cout <<" \ AULA 06S5IST B!\n";
return 0;
clic
}

AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN


AUTORES: NIEVES KARLA,SUAREZ RENY ,VIERA URIAN

Anda mungkin juga menyukai